P3514 [POI2011] LIZ-Lollipop
我们需要重点利用值只有 \(1,2\) 的性质。我们可以用 \(1\) 将 \(2\) 分段模型化题目。
一个想法是选最左边的 \(1\) 为左端点,往右二分到第一个 \(\ge x\) 的位置,如果是 \(x+1\) 就将左端点右移。
但是这并不能涵盖所有情况,但是我们可以令最右边的 \(1\) 为右端点再做一遍。
如果上述两种情况都不能算出 \(x\),那么如果其合法那么一定是在最左 \(1\) 和最右 \(1\) 之外。
因为此时已经没有 \(1\) 可以用,那么奇偶性不会变,奇偶性不同就非法。
P3599 Koishi Loves Construction
先考虑 Task1 前缀和互不相同,观察得出:第一位必须填 \(n\)。
其次,\(n\) 必须不为奇数或 \(n=1\),因为 \(1+2+\dots+n-1=\frac{n-1}{2}\times n\),导致前 \(n\) 位一定整除 \(n\)。
考虑构造 \(0,1,-2,3,-4,\dots\),形成 \(0,1,-1,2,-2\) 可以做到互不相同。将负数加上 \(n\) 即可。
考虑 Task2 前缀积互不相同,观察得出:第一位必须填 \(1\),最后一位必须填 \(n\)。
同理地,\(\prod_{i\in[2,n-1]} i\neq 0\pmod n\),相当于 \(n= 1,4\) 或 \(n\) 是质数。
考虑构造,\(1,2,\frac{3}{2},\frac{4}{3},\dots \frac{n}{n-1}\),形成 \(1,2,3,\dots n\),可以证明互不相同,蒙对了。
P5361 [SDOI2019] 热闹的聚会与尴尬的聚会
这个题太厉害了。首先这个奇怪的限制我们可以先转化为最大化 \(p,q\)。
考虑最大化 \(p\) 的值,即找度数最小值最大的集合。
贪心地,我们只关注全局的答案,每次删掉度数最小的点,然后更新答案即可。
证明的话考虑最优解是一定能由每次删度数最小的点得到的。
或者类比检验二分 \(mid\) 的值是否合法,就是每次删度数 \(<mid\) 的点,并更新其他点。
最大化 \(q\) 的值即求最大独立集,这是个 NPC 问题我们只能用近似算法比如随机化。
然而我们考虑这个问题和第一问的联系,每次令度数最小的点加入独立集并删掉其相邻的点。
不难发现这样做刚好符合题意,因为我们加入一个点,删掉的点数量 \(\le p\),那么 \(q\ge n/(p+1)\)。
反证:如果删掉的点数量 \(> p\),那么此时一定存在一个集合其度数都 \(> p\),与第一问结论相反。
CF1325F Ehab's Last Theorem
神仙题。记 \(sq=\sqrt n\) 向上取整。
关于环的构造我们可以考虑 dfs 树。因为这是一个无向图那么 dfs 树没有横叉边,只有返祖边。
又因为没有重边,所以如果一个点有 \(x\) 个返祖边那么就存在一个大小为 \(x+2\) 的环。
若没有大小 \(\ge sq\) 的环存在,那么每个点最多有 \(sq-3\) 条返祖边存在。
考虑构造独立集,考虑用上最多有 \(sq-3\) 条返祖边的条件,我们考虑删一个点会造成的影响。
我们考虑删一个影响最小的节点,我们可以考虑取出最深的叶子节点然后将其加入独立集。
同时与其连接的点都要删去,但是我们最多只会删去 \(sq-3+1+1\) 个点。(返祖边,父亲,自己)。
相当于每次减去 \(sq-1\) 个点,\(sq-1\le \sqrt n\),那么一定可以做 \(\sqrt n\) 次。
若 \(\sqrt n\) 是整数,那么已经完成 \(\sqrt n=sq\) 了。否则此时一定不会删完,再选一个点达到 \(sq<\sqrt n+1\)。
这个题的启示?相当于独立集问题,考虑每次选出影响最少的点的贪心。
CF1198C Matching vs Independent Set
还是一道二选一构造题。由于边独立集就是匹配,这个比较好入手。
我们有一个随机化的方法,就是打乱边的顺序,然后从前往后加入,能加就加。
这给了我们一个启示,其实不需随机化,从前往后加入,将两端点都没有覆盖的边的端点覆盖。
若此时已经加入 \(n\) 条边,那么已经满足题意,否则没被覆盖的点一定有 \(>n\) 个。
显然地,不存在两个没被覆盖的点相邻,要不然一定加入边集了,所以剩下就是一个独立集。
这个题也挺神。