水题乱做11
【AGC 029C】Lexicographic constraints 二分答案之后可以用一个栈 chk
【LOJ 3472】「JOI 2021 Final」地牢 3 维护出每个点的区间即可
【AGC 025E】Walking on a Tree 考虑拔叶子,如果有一条边覆盖无所谓,有大于等于两条随便取两条,然后这两条变成相反方向的,然后合并成一个新的路径,这个做法好懂但是很难写
【CF GYM 103260H】Excluded Min 牛逼的 trick,倒着枚举答案 x,考虑一个区间如果被另一个包含,答案肯定更小,于是维护一个不交区间的集合,然后看这些集合有没有满足答案等于 x 的,如果有,删除那个区间加入新的区间,重复次过程即可,需要一些数据结构维护
【CF 538G】Berserk Robot 按照 mod L 排序,随便搞一下限制,要特别注意最后一步的限制
【CF GYM 103260K】Rectangle Painting 考虑用线段树维护覆盖这个区间的白色格子,答案可以方便的维护
【CF 590E】Birthday AC 自动机算子串的连边,然后就是最长反链,也就是最小链覆盖,也就是 n-拆点之后的最大匹配
【CF GYM 102979】Knowledge Is... 有趣的贪心,我自己想出来的。先按照左端点排序,然后维护所有匹配,考虑任意一个匹配,它的右边的区间总能被当前的替换,因为按照 l 排序了,我们再维护一个没被匹配的区间,按照右端点排序,我们希望右端点尽量小。我们新放进一个区间,找最大能和这个点匹配右端点匹配,如果没有找一个匹配里右端点最小的那个换一下,然后放进没被匹配的区间的集合里
【CF GYM 103260B】Lockout vs tourist 有个牛逼的定理叫作 Minimax theorem,我们可以看做小 t 要找一个排列使得我们无论什么策略权值最小,这个也等价于我们要找一个排列无论小 t 怎么操作权值最大,这两个答案是相等的
【CF 103260D】Output Limit Exceeded 有个东西叫作 Kuhn's Algorithm,感觉像是匈牙利的另一种写法,每次 O(m) 能看答案能不能增加 1,总复杂度是 O(nm) 的,这个题要用到这个优化,普通匈牙利好像过不去
【AGC 003E】Sequential operations on Sequence 先把 q 变成单调递增的,然后对一个 q 的贡献可以变成前面的的整倍数贡献加上余数的贡献,递归下去
【AT keyence2019F】Paper Cutting 直接算每个点作为左上角的贡献,加起来就好了
【CF 1579G】Minimal Coverage f(i,j) 表示前 i 个,和左边距离为 j 的时候和右边最小能多少,状态居然还能这么定义
【CF GYM 101190M】Mole Tunnels 模拟费用流,每个点维护子数内到 T 的最短路,然后一个点出发的路径肯定是到某个祖先然后再进入子树,由于深度是 log 的,暴力跳即可
【CF 1575F】Finding Expected Value 停时定理 naive 题
【CF GYM 102916F】Exactly One Point 场上过一车的题,没想出来/ll,按照点 dp,考虑现在在 x 放了一个点,下一个点的限制,是 (覆盖当前点的区间里R最大的R,左端点大于当前点的区间里最小的R],然后扫过去,并记录方案就好了
【CF GYM 100540M】Game 有趣的博弈论题
【CF ???】 考虑维护十轮的状态,这个状态数很大,然后根据题解可以压缩很多
【CF 1578J】Just Kingdom 挺牛逼的,考虑维护 (u,x) 表示这个点的查询需要给 u 这个点 x 元,暴力的话可以往上跳变成 (fa(u),x'),然后我们发现如果 u 这个子树的 sum<=second max 的时候我们可以暴力跳,每次 x 至少翻倍,否则我们直接倍增预处理
【ARC 128F】Game against Robot 不知道后半部分题解在说啥,我们后半部分求的其实是不经过 y=x+k 这条直线的路径
【CF 98E】Help Shrek and Donkey 纳什均衡
【CF GYM 102870J】Junction of Orz Pandas 容斥
【CF GYM 102870F】Flow of Orz Pandas 建个超级源点,对于每个环,我们要它的导数是 0,有 E-V+1 个环,然后除了超级源点,其它每个点 u 都有个边的流量之和是 w(u),有 V-1 个,总共 E 个方程,恰好 E 个未知数
【CF 1530G】What a Reversal naive 的构造,居然是 3300
【CF 1220G】Geolocation 发现总和的限制也是个圆,然后枚举第一个圆的半径即可
【CF 1209H】Moving Walkways 发现对于一个区间,用一定量的能量消耗时间是相同的,先把能量取到上限,然后贪心选 s 大的把能量调小
【CF 1060G】Balls and Pockets 挺有趣一个题,考虑一个 [INF,INF+n) 这个区间,倒着做,会遍历所有区间,这个是可以模拟的,我们先把询问变成查询 INF+x 这个点走 k 轮到的点,然后再模拟算出位置
【CF1028H】Make Square 先把数字无平方因子化,两个数字的贡献是 f(x)+f(y)-2f(gcd(x,y)),然后就好搞了
【CF 868G】El Toll Caves 欧几里得形式的递归,转为子问题
【ABC 225H】Social Distance 2 算出每段的贡献,然后分治 NTT
【CF 1178G】The Awesomest Vertex 线段树维护,复杂度是三个 log 的,听说叫 ktt,这里有证明
【CF 959F】Astronomy 听说暴力复杂度是对的
【CF 1158E】Strange device 可以以 1 为根问出每个点的深度,然后 %3 分开再二进制拆分查询每个点的父亲
【CF 414E】Mashmokh's Designed Problem ETT 板子题
【BOJ 23162】Matryoshka Dolls 考虑一个 x 在每个区间的贡献,我们提取出来,最后扫描线,复杂度听说是对的
【CF 751E】Complete the Permutations 我有点不擅长的数数题
【CF GYM 103415B】Sweeping Robots 单调栈,笛卡尔树,李超树,扫描线
【AGC 048D】Pocky Game 挺有趣的博弈论
【CF GYM 103415D】Unnamed Easy Problem hy 的 nb 做法,好像踩标了。g(i,0/1) 表示放了前 i 个,前 K 个异或和是否大于 0,后 n-K 个异或和等于 0,我们发现 \(g(i,1)=\binom{2^n-2^k}{i-1}-(2^n-2^k-(i-2))g(i-2,1)-g_{i-1,0}-g_{i-1,1}(2^K-1)\),前面相当于保证没有重复,后面减掉最后放的那个 <2^K 的方案
【CC CDIGLNUM】Chef and Digits of Large Numbers 简单数位 dp
【CF 500F】New Year Shopping 经典双栈 trick
【ARC 118F】Growth Rate 插值题,要想到是个多项式
【ARC 128D】Neq Neq 简单 dp
【CF 1205E】Expected Value Again 有个神奇结论,同时有周期 i,j 的字符串的个数是 \(字符集^{\max(\gcd(i,j),i+j-n)}\)
【CF 1008E】Guess two numbers 看代码秒懂,但好像不是题解做法
【AGC 031C】Differ by 1 Bit 递归构造
【ARC 079F】Namori Grundy 拔叶子,最后剩下一个环,如果每个数字相同并且环的大小是奇数,无解,否则有解,可构造
【ARC 080F】Prime Flip 差分,每次搞两个位置,如果距离 dis 是奇质数,只要一次,如果是偶数两次,否则三次,贪心的匹配即可
【ARC 073F】Many Moves 线段树整体 dp 经典题
【ARC 076F】Exhausted? 简单贪心
共 50 题
本文来自博客园,作者:xay5421,转载请注明原文链接:https://www.cnblogs.com/xay5421/p/water11.html