文化课就很掉头发,文科都能学好我还怕竞赛?(

  大概从“刷的题的题解”推广为“所有做的题的题解”吧,兔子比较懒,这样写题解轻松一些。



  Gym103055B & Submission.

  Tags:「A.扫描线」「B.离线」

  发现网格图本身很小,扫描线求出每个点最先被谁覆盖,最后被谁覆盖,然后离线算答案即可。我写的这个屑非常卡常。



  Gym102978D & Soluition.



  OurOJ 30215.

  Tag:「B.贪心」

  水题,随便贪心即可。注意用 std::nth_element 将复杂度实现为 \(\mathcal O(n)\)。(其实我 std::sort 就过了。



  OurOJ 19791 & Submission.

  Tag「A.数学-组合计数」

  显然 \(k\) 次冒泡能使序列升序的充要条件是每个位置初始向前的逆序对数不超过 \(k\),方案数即 \(k!(k+1)^{n-k}\);而 LIS 为 \(n-1\) 的序列等价于在忽略一个数之后有序,那么忽略的数 \(x\) 可以分为两种情况:

  • \(x\) 向前的逆序对数大于 \(k+1\);

  • 有若干个小于 \(x\) 的数在 \(x\) 后,且它们向前的逆序对数恰为 \(k+1\)。

  分别统计贡献,可得 \(\mathcal O(Tn)\) 的算法;可以分块进一步优化复杂度。



  洛谷 P3943 & Submission.

  Tags:「A.DP-状压/插头 DP」「B.差分」「B.模型转化」

  差分,那么一次以 \(x\) 为左端点,长度为 \(l\) 的修改相当于翻转 \(x\) 和 \(x+l\),建图,BFS 求出同时翻转一对最终为 \(1\) 的状态的最少操作数,状压 DP 求答案。



  OurOJ 19079 & Submission.

  Tags:「A.分治-二分答案」「B.贪心」

  二分在操作序列开头添加多少个 E 0,判断合法时,我们仅需讨论 E 0L 0 的实际含义,对于 E 0

  • 若存在不在基地且下一个操作为离开的人,令满足要求且离开操作编号最小的人进入;

  • 否则,令一个新人进入。

  对于 L 0

  • 若存在在基地且下一个操作为进入的人,令满足要求且进入操作编号最小的人离开;

  • 否则若存在在基地中且没有后续操作的人,令他离开;

  • 否则若存在在基地中且下一个操作为离开的人,令满足要求且离开操作编号最大的人离开;

  • 否则,忽略操作(假定基地初始有个人,让他离开)。



  AcCoders Contest.

【A - 茅山道术】

  同色段忽略为单个颜色,那么仅用考虑 \(i\) 位置的颜色是否和前一个同色位置进行操作,得到转移。

【B - 泰拳警告】

  枚举打平的场数,组合数、二项式定理算贡献。

【C - 万猪拱塔】

  Tags:「A.数据结构-线段树」「B.Tricks」

  不要沉迷于喵树分治,会变得喵喵喵。(

  第一步转化,维护值域,求 \([l,r]\) 内的数是否恰为一个矩形。令值在该区间内的格子为黑色,其余为白色,接下来是一个结论,或说神奇的 trick:

黑色格子构成矩形,等价于恰有 \(4\) 个 \(2\times2\) 的方格包含了奇数个黑格子。

  那么,扫描 \(r\),维护 \(v_l\) 表示 \([l,r]\) 为黑色时包含奇数个黑格子的方格数量,由于这一数量的下界是 \(4\),所以仅需维护最小值,顺带维护最小值个数、取最小值的下标和来计算答案。每加入一个点,重新计算这个点周围四个方格即可。极度卡常,建议使用 ZKW 线段树(可惜我不会。

  顺带一提,这题放序列上可以直接单调栈 + 线段树;而序列上亦能用这种维护“两个格子不同色”的数量来算答案,且这种算法貌似能扩展到更高维空间?

【D - 抑郁刀法】

  Tags:「A.搜索-穷举搜索」「B.优化建图」「C."NPC"」

  按度数缩图——度数为 \(1\) 的点,方案贡献恒为 \(k-1\);度数为 \(2\) 的点,例如 \(u\),它有邻接边 \((u,v)\) 和 \((u,w)\),那么 \((v,w)\) 边在 \(v,w\) 颜色相同和不同时有两种贡献,不过这也能够通过 \((u,v)\) 和 \((u,w)\) 的贡献数算出来。最后得到任意点的度数 \(\ge 3\) 的图,最多剩下 \(10\) 个点 \(15\) 条边,暴搜这些点的最小表示法,算上邻接边的贡献即可。

【Summary】

  • C 的喵树分治明明伪得不行却浪费大量时间写;

  • 留给 D 的时间非常不充裕。

  • 虽然没挂,但为了 rush 暴力几乎没有检查。

  算法,特别是自认为是正解但是很难写的算法,必须想清楚,像这次堆出 8K 的屎山真的极度浪费时间。

  后两题不要先入为主断定难易度,起码的思考以及完赛检查时间预留充分。



  Gym103055H & Submission.

  Tag:「C.构造」

  题意相当于构造 \(\{1,2,\dots,2n\}\) 的完美匹配,使得每对数的差恰构成集合 \(\{1,2,\dots,n\}\)。利用一段区间左右不停向内连进行大多数操作,剩下的细节手玩叭√



  BZOJ 3551 & Submission.

  Tags:「A.Kruskal 重构树」「A.数据结构-可持久化线段树」「B.DFN」

  Tags 已经说明了一切.jpg。



  BZOJ2874 & Submission.

  Tags:「A.数据结构-可持久化线段树」「B.差分」

  把修改和查询都差分为四个顶点的二维前缀修改,考虑修改点对询问点的贡献,主席树维护 \(x\) 轴前缀上,\(y\) 轴区间的四种贡献信息即可。我的代码貌似讨论得有些复杂,可以看看 mmm 的。(



  BZOJ4504 & Submission.

  Tag:「A.数据结构-可持久化线段树」

  前 \(k\) 大老套 trick,主席树维护每个左端点的方案集合即可,不赘述。



  BZOJ4771 & Submission.

  Tag:「A.数据结构-可持久化线段树」

  有点把前一道搬到树上的感觉 awa。用主席树维护关于深度的答案;std::map 启发式合并维护子树内最浅颜色保证不重复贡献。



  UOJ77 & Submission.

  Tags:「A.数据结构-可持久化线段树」「A.网络流-最大流/最小割」「B.优化建图」

  长得一副最小割的样子那就直接来嘛——连 \(\lang S,i,b_i\rang\) 以及 \(\lang i,T,w_i\rang\) 表示颜色选择,对于 \(i\),连向一个用于支付“奇怪”代价的点 \(p\),容量 \(p_i\),主席树优化 \(p\) 连向其他点的过程,最后跑一个最小割就好。



  BZOJ3166 & Submission.

  Tag:「A.数据结构-可持久化 Trie」

  次大值的性质并不优美——直接枚举它,通过单调栈二分求出使得它成为次大值的两个区间,再用可持久化 Trie 维护区间异或 \(x\) 的最大值计算答案。



  CodeChef XRQRS & Submission.

  Tag:「A.数据结构-可持久化 Trie」

  直接上可持久化 Trie 就行,由于 01-Trie 可以视为值域线段树,所以它也能处理第 \(k\) 大等操作。



  CF916D & Submission.

  Tags:「A.数据结构-可持久化 Trie」「A.数据结构-可持久化线段树」

  难点大概是题意理解叭。它其实是会 undo 掉 undo 操作的,如果直接从可持久化版本的角度理解反而清晰一些。

  我们需要支持持久化维护字符串与权值的对应,以及权值自身的信息。同步处理一棵可持久化 Trie 和可持久化权值线段树即可。



  SP11444 & Submission.

  Tags:「A.分块」「A.数据结构-可持久化 Trie」

  分块还是得练呐。第一步显然求前缀异或和将问题转化为区间两数异或最大值。预处理一棵可持久化 Trie 维护区间异或 \(x\) 的最大值,然后分块。对于第 \(i\) 块,设其为 \(l_i\),预处理出 \(f(i,r)~(r\in[l_i,n])\) 表示区间 \([l_i,r]\) 的答案。单次询问时,暴力处理左端点 \(l\) 所在块的贡献,查 \(f\) 的表知后半段的贡献。设块长为 \(b\),复杂度为 \(\mathcal O(\frac{n^2}{b}\log A+mb\log A)\),显然 \(b=\sqrt{\frac{n^2}{m}}\) 时取下界 \(\mathcal O(n\sqrt{m}\log A)\)。

  注意 \(\textit{lastans}+x\) 可能爆 int



  (其实这中途咕咕咕了很多题 qwq。)

  CF1556F & Submission.

  Tag:「A.DP-状压/插头 DP」

  令 \(f(S)\) 表示 \(\forall x,y\in S,x\not=y,~x\rightarrow y\) 的概率,\(g(S,T)=\prod_{x\in S}\prod_{y\in T}\frac{a_x}{a_x+a_y}\)。那么答案即为

\[\sum_{S\subseteq U}f(S)\cdot g(S,U\setminus S)\cdot|S|.
\]

  先 \(\mathcal O(3^n)\) 求出 \(g\),再同样 \(\mathcal O(3^n)\) 求出 \(f\) 即可。



  CF1574E & Submission.

  Tag:「C.性质/结论」

  经典结论:合法涂色方案中,必然所有行或者所有列都是黑白交替。

  分别维护行能否黑白交替,列能否黑白交替,行列能否同时黑白交替,以及有多少不被限制的行和列,就能计算答案。



  CF1574F & Submission.

  Tag:「C.性质/结论」

  结论什么的很好推嘛,比较琐碎就不提了。注意实现的时候可以从每个字符的角度进行检查,记录字符前驱后继来遍历,写着会舒服亿点。(不是你这题解越来越抽象了啊。



  CF1497D & Submission.

  Tag:「C.性质/结论」

  令 \(f(i)\) 表示以 \(i\) 结尾的最大得分。\(|c_i-c_j|\) 有严格顺序关系,按此顺序枚举 \((i,j)\) 进行转移。

Involuting Bunny! (2021.9)的更多相关文章

  1. Involuting Bunny! (2021.8)

      CF1555F & Submission.   Tags:「A.生成树」「B.Tricks」   分类处理询问的 trick:连接两个连通块的边显然合法,先用这些边构建生成森林.发现每条边 ...

  2. codevs 2021 中庸之道

    2021 中庸之道  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description 给定一个长度为N的序列,有Q次询问,每次 ...

  3. Python 小游戏 Bunny

    最近在学习Python,所以上网找了一个小程序练练手. 关于这款名为[Bunny]的小游戏,详细请看下面的链接: http://www.oschina.net/translate/beginning- ...

  4. Bzoj 1982: [Spoj 2021]Moving Pebbles 博弈论

    1982: [Spoj 2021]Moving Pebbles Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 130  Solved: 88[Submi ...

  5. poj 2021 Relative Relatives(暴力)

    题目链接:http://poj.org/problem?id=2021 思路分析:由于数据较小,采用O(N^2)的暴力算法,算出所有后代的年龄,再排序输出. 代码分析: #include <io ...

  6. 使用Bash Bunny从被锁定的系统抓取登陆凭据

    在今年早些时候,FB就对Bash Bunny做了相关的报导.这款号称“世界上最先进的USB攻击工具”的Bash Bunny,是否真的像其所说的一样是款渗透神器呢?下面,我将通过实例演示如何利用Bash ...

  7. iPhone屏蔽IOS更新、iPhone系统更新的提示(免越狱,有效期更新至2021年)

    iPhone屏蔽IOS更新.iPhone系统更新的提示(免越狱,有效期更新至2021年) 1.在Safari浏览器中粘贴如下链接,按提示打开链接. 输入http://apt.dataage.pub 2 ...

  8. HDU 2021 发工资咯:)

    http://acm.hdu.edu.cn/showproblem.php?pid=2021 Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的 ...

  9. Math.abs(~2020) 按位取反后的绝对值是多少 2021, 按位取反后,比正数多1

    Math.abs(~2020)  按位取反后的绝对值是多少 2021, 按位取反后,比正数多1 int 值的取值 范围:   -128 ---  127   之间, 0000 0000     按位取 ...

随机推荐

  1. SYCOJ27猴子选大王

    题目-猴子选大王 (shiyancang.cn) 一.出队顺序Description有M个人,其编号分别为1-M.这M个人按顺序排成一个圈.现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然 ...

  2. HTTP2和WebSocket

    HTTP http是目前应用最广泛的应用层协议,截止到目前为止已经发布了多个版本,最常用的是http1.1和http2. http0.9是最早的版本,功能很简单,没有header,只支持GET. ht ...

  3. No shutdown animation in the electricity display only 1%

    低电量自动关机时无关机动画 低电量自动关机时无关机动画1. 问题描述2. 分析3. solution4. 总结 1. 问题描述 DEFECT DESCRIPTION: No shutdown anim ...

  4. VirtualBox 安装 Ubuntu 20.04 全流程

    VirtualBox 安装 Ubuntu 20.04 全流程 内容概要 这个作业属于哪个课程 2022面向对象程序设计 这个作业要求在哪里 2022面向对象程序设计寒假作业1 这个作业的目标 在虚拟机 ...

  5. sql多行合并一列

    with a as( select * from( select 1 userId , '天津' province union select 1 userId , '北京' union select ...

  6. 【刷题-LeetCode】188 Best Time to Buy and Sell Stock IV

    Best Time to Buy and Sell Stock IV Say you have an array for which the i-th element is the price of ...

  7. CMake语法—缓存变量(Cache Variable)

    目录 CMake语法-缓存变量(Cache Variable) 1 CMake缓存变量 2 定义缓存变量 2.1 定义格式 2.2 定义示例代码 2.3 运行结果 2.4 小结 3 CMakeCach ...

  8. 微服务架构 | *2.3 Spring Cloud 启动及加载配置文件源码分析(以 Nacos 为例)

    目录 前言 1. Spring Cloud 什么时候加载配置文件 2. 准备 Environment 配置环境 2.1 配置 Environment 环境 SpringApplication.prep ...

  9. 集合框架-工具类-Collections-折半最值

    1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.uti ...

  10. log4j学习记录以及相关配置(精简版)

    使用log4j时关键配置 log4j的maven依赖 <dependency> <groupId>log4j</groupId> <artifactId> ...