P3750
首先考虑必杀次数比较小的怎么算,不难发现一直按最后一个 是对的,理由是最后一个 的位置 ,之前的位置改不了 ,按多倍的 一定不优。
那只要处理出 的因数,然后暴力算就行了,有一个上界 ,这时候已经有 80pts 了,设算出次数为 。
然后再找一下性质,按的方案是固定的,因为任意一个按钮都无法通过别的替代,考虑 dp,设 表示还有 个按钮要按,随机按按掉一个要按的期望次数,那么 ,前面那个表示按到一个需要的概率是 ,次数是 ,后面那个是按错了的概率是 ,那么要按回去,需要 次,在按少一次,需要 ,还有浪费的当前 次。
转出来这个柿子,得到 ,边界 。出答案还要一个分讨,如果 ,答案就是 ,否则,答案是 。
AGC005D
考虑容斥,设 表示钦定 个点 的情况下的方案数,那么 ,然后考虑怎么求 就行了......?
画一个二分图,左边表示 ,右边表示 ,考虑连边 ,画画图,会出现 条链,把链条拉直放好,相邻的可以连边,这个东西很好 dp 了,设 表示前 个点,连接了 条边,最后一个点没/有连边的方案数,注意不同链连接的地方不能选择连边,初始化 :
然后 ,做完了 >.<
ARC160D
首先考虑去重,区间 的操作看做在左端点做,这样区间 的操作钦定每个点做不超过 次即可,正确性大概是从左到右加方式固定。
然后考虑容斥,,过程可以 gf。
ABC162E
直接把柿子化开即可,欧拉反演,答案是 。
P3338
求的是 ,设 ,特别的 ,那么有
左边已经是加法卷积了,直接 FFT 即可,考虑转换右边,先枚举 ,考虑 那么有下柿 >w<
还是加法卷积,再来一次 FFT 即可,注意不能三次变两次,掉精度严重,过不掉,答案 >w<
AGC059C
首先这是一个完全图,然后每条边 要给定一个偏序关系 表示 ,已知的偏序关系不能在连边,我们分析一下:
我们考虑具体表达一下约束,考虑已经有一条链 ,那么 不能最后加入,而我们要从下往上,每三个都必须满足,然后就可以归纳,所以我们考虑三个点 。
假设 是最后加入的,那么 必须是 中最大或者最小的,不难会导致不满足,于是对于 有一个对于 同向的要求,这个是一个 2-SAT 啊。
那么拓展域并查集即可,设最后有 个联通块,答案就是 了,DAG 也没有环。
P3763
使用多项式卷积进行字符串匹配,轻微卡常。具体而言就是设当前字符为 别的为 ,对应位乘起来再相加可以得到匹配数,保证和为定值可以翻转一个数组。
AGC028B
考虑 「 的期望次数」,最后乘上 即为答案。
我们考虑删除 时 也贡献的期望,那么 中最先被删除的是 ,概率是 ,考虑 ,答案显然是 。
AGC015D
硬是控了我不知道多久。
二进制下考虑,首先发现相同前缀没有影响,特判掉 的情况,去掉 相同前缀后讨论,剩下的情况 最高位为 ,首先 可以成为合法答案。
然后是一个非常好分讨,爱使我大脑旋转。设 的最高二进制位的值为 ,次高为 ,为了方便下述 表示实际取的数。这里 ,表示第 位为 , 的含义是取了二进制下面的 位都是 。
-
考虑答案最高位是 ,这种在 里面已经全都有了(或不出比 小的,或不出比 大的,这个区间合法因为都被 包含了),后面讨论的情况答案最高位都是 。
-
考虑使用小于 的数,因为讨论的是答案最高位是 的,答案至少要或上 ,那么最小的情况是 ,或不出更小的了,最大的情况是 也就是 ,或不出更大的了,那么做出来的是一个区间 ,很满了。
-
考虑不使用小于 的数,答案下界是 ,然后往上面或,可以选择 中的任意数,那么是满的比较随便,但是最高位的不超过 ,那么做出来的区间是区间是 ,不能再多了。
对于上述区间取并,大小就是答案,注意去除前缀后有可能出现左端点为 ,要初始化 捏。
P4173
首先令 ,然后长度相同的字符串 匹配成功的条件是 ,这个柿子拆开之后跑三次 NTT 就行了。
CF1453F
我不会 dp,杀了我吧 /kk
考虑一个合法鸽子序列 ,分析合法条件,首先令 表示最多到达某一个位置。
这样子就充分必要了,前两条保证了只使用实际路径的点的情况下的路径唯一性,第三条保证了不能中途跳到其它点,大概就是,跨越的考虑 跳到 的点没有必要,因为在考虑 的时候肯定会被考虑,然后 肯定可以跳到 ,那么 的路径就必须不能跳到 ,那么间接跳越界的事情不会出现,因为全都没有前途跳到 。
然后就能考虑 dp 了,设 表示 为 时最少杀死多少鸽鸽,你问鸽鸽怎么转移,祂用灵魂告诉你可以 ,这个 表示区间里面要被割掉的鸽鸽数,现在有一个立方做法了,爱来自鸽鸽。
然后考虑优化这个 b 东西,做一个前缀 然后倒着枚举就行了,做完了。
P2607
内向基环树,不能选相邻,每个联通块分别计算,环随便断再直接 dp 就行了,要钦定一个叶子的选项,注意特判 这种环,但是不能 map,会 mle,说句鲜花 map 我已经写出心理阴影了。
CF1120D
刚看到题面的我看着生成树标签瑟瑟发抖。。
考虑摊开叶子节点的 dfn,那么一个节点 相当于可以花费 的代价修改一个区间 ,问这个序列任意初始值的情况下能清空的最小代价。
区间修改考虑差分,原序列是任意的,那么差分数组是自由的,因为每一位都能清空,所以上面的差分值都能间接传递到 ,所以,每个点相当于有一条边 ,答案就是最小生成树了。
至于答案并,每次把边权相同的放在一起考虑一下就行了。
CF1527E
线段树优化 dp 即可,贡献可以栈+线段树维护,注意常数。
CF1852C
首先题目相当于每次可以区间 问在 意义下原序列最少多少次可以变成目标序列。
如果没有模,这是一个 lianggj 题,考虑差分数组 ,那么 。
考虑一个模意义下合法的序列,,题目问的其实就等价于任意的这种序列的答案的最小值。
这个 在差分数组上是取 的 ,然后这个东西的最小化用堆写一个反悔贪心即可。
P2767
考虑树形 dp,设 表示 个点根有 叉的方案数,初始化 ,考虑转移 ,注意题目是不超过,但这里直接取了 的原因是空子树直接被算进去了。
ARC121D
不是很大,考虑平方以上的做法。
对于单独匹配的,我们可以补代价 的物品进去,这需要枚举总长度 ,然后就变成了 左右的两两匹配最优。
对于最大的 ,肯定要跟最小的匹配,不然不优,删去这两个,还是要最大最小匹配,发现是环形匹配,然后就做完了。
ABC302Ex
考虑建图,对于每一对 建边,考虑一个图的答案。一个联通块,如果没有环,那么每一条边都能占有一个点,答案是边数,如果有环,那么每一个点都能被边占有,那么答案是点数,设联通块的 点数/边数 为 ,那么答案其实就是 ,可以写一个可撤销并查集维护。
AGC002E
首先相对顺序无意义,考虑 ,然后一次操作的含义就是去掉左边一行或者去掉下面一行,不妨放在坐标系上面考虑,就是可以从局面 变成局面 ,这里 贴个图。
其中红色代表比败局面,绿色代表必胜局面,画画的依据是能到达必输局面的是必赢局面,不能到达必输局面的是必输局面,设 表示先手在 的输赢性。
有一个显然的性质,,那就这样子走到一个较为边缘的节点,然后按照画画的依据走两条分叉做就行了,往右的不会超过 ,可以 BF,往上的怎么办呢,注意到对于相等的一段 头顶的 可以通过奇偶性求,而往上的这一段路按照奇偶性 的 交替出现,那么可以剪枝优化掉。
P3523
首先二分,然后问题变成了选不超过 关键点使得关键点到选点的最小距离能不能都不超过 ,直接贪心 on tree 就行了。设 表示没选的最远的关键点距离, 表示选了的关键点的最短距离,转移是一个迷你分讨。
CF508E
有人秒不掉黄题,直接贪心即可。具体而言,一直在里面塞括号直到满足条件,这样不劣,如果过了还往里面塞完全可以塞到外面一层。
CF1144G
比较那啥的是贪心可以有一个最长化然后数据结构维护好像能做,但是贪心就够了。
考虑维护的 下降/上升 的链的结尾为 ,对于当前 ,做不了就去死,只能接在其中之一就接,不然就是下图情况,如果 那肯定一个一条,于是不妨假设 ,翻转一下就是 了,故不赘述。考虑情况 如题所示
如果 接在下降链, 两个链都能接,如果 接在上升链, 只能接在下降链,对于发现不管左图接 下降都不会劣于上升,于是贪心的,如果 就接在下降,否则上升。
CF1342E
首先要不然每行放一个,要不然每列放一个,否则不符合条件,注意到除了 的情况两者是同样的问题,我们考虑钦定每行放一个然后最后再乘系数 。
少放一列多一对互相攻击,恰好 个棋子互相攻击,那么就是把棋子放在 列里面,每一列都必须有棋子,首先选列有一个 的系数,然后问题变成了把 个棋子放进 列里面,每一列都必须至少放一个的方案数。
考虑容斥,设 表示最多放 列的方案数,显然 ,容斥可得这个方案数为 ,乘上以前的系数就是题目的答案。
P5363
首先,将连续一段没有棋子的棋盘看做一堆 ,每次移动棋子相当于放一些 的去到 ,这个东西是一个 Nim 阶梯博弈,先手必胜当且仅当 ,理由大概是把奇数位的 看做 Nim,在 Nim 的必胜方肯定希望只按照 Nim 去玩,那么对于另一方,如果其尝试从偶位往奇位移动,必胜方一定可以通过一次移动变成原本的 Nim 非 的局面。
然后考虑大小为 的棋盘放 个棋子玩 Nim 先手必败的方案数,必胜的直接总的去减必败的就有了。首先对于一个局面 满足 ,跟局面 一致,考虑递推,设 表示 的方案数,额对于 是偶数其答案肯定是 ,枚举奇数堆个数为 。
答案的话可以考虑插插板什么的,于是就有
CF1152D
题目求一个长度为 的可匹配括号序列组成的 trie 树的最大匹配数。画图 找规律,其实有大量相似子问题,而且答案其实是奇数层的节点数。
不妨 dp,设 表示 个左括号 个右括号的方案数,那么显然有 ,然后考虑第 层的节点数 ,那么 ,代码离谱的好写。
CF1375F
首先不难发现只有 的最大数被约束为不能操作的这种情况后手次轮必败。
然后考虑怎么构造出那种局面,考虑一个局面 中的 不能操作,那需要不管在 做加法都能使其最大且序列变成等差数列,不妨列出方程 ,然后其实都是 。
于是不妨随便初始给一个数 ,然后按照上述方法给一个 ,然后输出等差数列的公差。
AGC002F
不难发现白色序列合法的充要条件为 ,考虑对这个条件 dp,不妨设 表示放入 个白球和 种颜色球的方案数,转移考虑第一个放什么 >w<
其中 是直接放入白球塞进开头的贡献,后面那一坨是放入新的一种颜色的贡献,两个系数分别来自选颜色以及选位置。
AGC059E
这种题到底是谁在出谁在会。
判断边缘的合法性,考虑构造矩阵 满足相邻两位差绝对值是 且与 同余,矩阵的边缘很好确定且每一个 都存在唯一 ,所以有一个必要条件必须有按照上述方式构造合法的矩阵。
不够充分,再判断一个对于 满足 ,这个判断边缘的即可。
然后给出一种合法构造 ,奇偶随 变换且相邻不等。
AGC052E
跟上个题目一个 trick,考虑构造出 满足相邻位差绝对值为 且与 同余,这里需要钦定一对 ,但是考虑到序列其实重要的只有差,所以可以任意钦定 然后考虑哪个 最优。
现在考虑一次变换的含义,对于一个点 满足 ,如果 就使 反之 。首先这个 b 东西要求 对应位奇偶性相同,考虑到原题 相邻位有一个异奇偶所以只要加上一个 同奇偶,那么之后操作每次消掉 的差,每次可以选一个最大/最小的 来操作,那么次数就是 啦 >w<
然后考虑最小化柿子,先随便弄一个傻 ,然后考虑实际的 ,不妨令 ,那么就是要最小化 ,注意这里的 要满足模 跟 同奇偶,模 跟 同奇偶,取最中间的就最优秀了。
AGC018F
考虑使用 构造,那么对于一个点,因为答案要求的 奇偶性一定,假设其有奇数个儿子,那它必须赋值为 ,否则可以考虑其有偶数个儿子两两配对之后和为 ,再给当前点一个 。对于偶数个儿子的点,其值决定于自己,否则,其值决定于决定其其落单的儿子的值的东西。
新开一个图,我们把需要配对的在新图上连边,对于决定儿子值的点两两连边,然后直接二分图染色就可以了,这样连出不了奇环,无解就直接在树上判掉。
P4001
首先题目是求一个有约束的 【模板】最小割,但是不难发现在这个题目中最小割=最短路,具体一点,就是对于一个特定的划分 中间连的边是最小割,于是可以求这种三角形的最短路。这个 b 东西有一个高级的名字,平面图最小割转对偶图最短路。
P2012
使用指数生成函数 对应排列,有一个泰勒展开 这样的。
考虑对每一种写出对应的 EGF 然后乘起来,三种分别如下:
于是我们所需要的 ,挺好的。
答案是 ,于是乎 ,注意 在 下没有逆元,以及直接写 这种东西就会爆 long long 了,需要用拓展欧拉定理稍微处理一下 qwq
P4178
淀分治板子题,计算答案可以使用双指针。
P4149
还是淀分治板子题,计算答案需要使用桶。
P3232
先算出点的期望到达次数,注意 的影响不一样捏,具体而言捏一个跟度数相关的高斯消元,然后通过点的期望次数考虑边的期望次数,然后排序贪心就行了。
CF1458D
考虑 , 对于每一种前缀 建立一个节点,对于一个可翻转区间 满足 ,这个 b 东西在图上成环。
然后考虑区间操作的含义,就是反着走环。往回走的权 否则 ,问题转化成了查找一个字典序最小的欧拉路,贪心求出即可。具体而言,在 与 有边,如果 与 有边那么 与 需要有多条边。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具