构造,交互,adhoc选做
GYM105631M
考虑尽可能多的构造,先拆成序列,发现能做到构造 \(\frac{n+1}{2}-1\) 个:找出前 \(\frac{n+1}{2}\) 个,然后按照 \(1, n, 2, n - 1\) 的大小顺序放,中间正好倒序插入 \(1 - \frac{n}{2}\)。
还差一次,没用上头和尾,稍微调整一下就行。
GYM105578B
纯纯人类智慧?题解没看懂,充要是 \(\gcd(n,m)=1\),构造是 \(a_i = (i*m+1) \mod nm, b_j = (j*n+1) \mod nm\)。
GYM105588C
考虑模拟。
好像很好模拟,但是复杂度有点超标,而且不太好知道哪个东西留到最后。
但是反向思考是好做的,具体的若操作完答案是 \(x\),则这次操作前答案是 \(x+\frac{x+k-2}{k-1}\)。
那只需要知道操作次数就能反向求答案了。
考虑 \(k\) 很小的时候轮数会很少,\(k\) 很大是时候 \(\frac{n}{k}\) 种类数很少。
根号分治就做完了。
CF1558C
增量构造。
注意每次是翻转前缀,所以我希望从后面一个个填好,这样就可以递归子问题。
不难注意到的是翻转不会改变位置奇偶性,可以先判掉不合法。
考虑剩下的情况是否一定有解,注意 \(\frac{5}{2}\) 的限制很奇怪,意味着要用 \(5\) 次操作还原 \(2\) 个位置,且由于最后两个分别是偶/奇,稍微思考可以得到如下构造:
\([1, pos_n], [1, pos_{n-1}-1], [1, pos_{n-1}+1], [1, 3], [1, n]\)。
CF1479C
简单题。
能看到 \(32\) 就往二进制上,不难发现 \(L\) 的限制是骗人的,最后连一条 \(L-1\) 的边就行,问题转化为如何构造 \([1,x]\)。
考虑每个节点代表一个二进制位,低位向高位连他自己权值的边,表示如果走这条边就选择他。
这样可以构造出 \([0,2^k-1]\),实际上是第 \(i\) 个节点拥有 \([0,2^i-1]\) 的所有路径。
对于 \(x = 2^k+t\),多余的部分也是好构造的,在对应位为 \(1\) 的节点上连边即可。
CF1325F
可能不简单但是我想的还蛮自然的。
这种问题先找一棵 dfs 树,然后环条件枚举非树边算一下大小就好判断。
然后剩下的一定是能找出独立集,构造如下。
证明是没有超过根号的环说明每个叶子返祖边数量小于根号,每次选 dep 最深的点然后删掉邻域只会每次删根号个点,能删根号轮。
CF2057G
妙妙。
考虑找到五种染色方案满足 \(\sum c = |p+S|\),这样就存在一种方案满足 \(siz \le \frac{1}{5}|p+S|\)。
对平面五染色,考虑第 \(i\) 种方案,找出所有满足为 \(#\) 的颜色为 \(i\) 的点染色,以及那些没有被覆盖到的地方染色,注意到后者只存在于边界。
复杂度线性。
总结:……就是想不到啊,感觉第一步也没怎么见过。
CF1019C
牛逼。
考虑 dag 的情况,可以按照拓扑序染自己和邻域,没有染过就染自己。
这样可以使得任何点到染色点距离不超过 \(1\)。
题面限制为 \(2\),我们希望用这一步覆盖到剩下的点。
也就是我们选出一个 dag,使得剩下的点到 dag 距离为 \(1\) 即可。
发现这是可以构造的!每次选一个不在 dag 的点并把它和邻域加入,直到不能再加入。此时不存在距离为 \(2\) 的点,若存在可以继续加入。
CF1584D
简单。
先二分出 \(k\),剩下的次数不够二分了,然后发现组合数性质 \(\binom{d}{2}-\binom{d-1}{2}=d-1\),就能求出来 \([j,k]\) 的长度,对 \(i\) 也一样。

浙公网安备 33010602011771号