CF1187G *2500
直接按时间分层,建网络流图即可。
\(\Delta\) CF1354G *2600
由于 \(k\le \frac{n}{2}\),我们用 \(\log n+O(1)\) 次询问来判定第一个位置是石头还是礼物。
随后考虑倍增,用 \([1,2^i]\) 这个区间来判定 \([2^i+1,2^{i+1}]\) 这个区间内有没有礼物。如果有的话,就抠出来这段长度为 \(2^i\) 的区间,再做一次二分找到礼物的位置即可。
\(3\log n+O(1)\) 次。
CF1515F *2600
考虑将所有点按照 \(a_i\) 从大到小排序。我们按照这个顺序检查每个点的所有出边,如果这条边两端点已经连通则直接将其删去,否则若不满足 \(a_u+a_v-x\ge 0\) 则无解。否则,我们将 \(u,v\) 两个点合并,将新的点的点权设为 \(a_u+a_v-x\),边集为两个点边集的并。
容易证明这是对的。
CF293C *2400
比较搞笑的题。
将 \((a+b+c)^3-a^3-b^3-c^3\) 因式分解,得到 \(3(a+b)(b+c)(a+c)\)。算出 \(\frac{n}{3}\) 的所有因数后,枚举其中两个作为 \(a+b,b+c\) 并检查这样是否确实形成一组合法的 \((a,b,c)\) 即可。
因为 \(\max_{n\le 10^{14}} \mathrm{d}(n)\le 2\times 10^4\),所以能过。
\(\Delta\) CF484C *2600
没想出来,比较失败。
考虑将题目给定的排序方式看作一个长为 \(k\) 的置换 \(P\)。我们在 \(P\) 的末尾填上 \(n-k\) 个不动点得到置换 \(P'\),设将整个序列循环左移一位的置换是 \(S\),那么最终的置换就是 \((P'S)^{n-k+1}S^{k-1}\)。
而一个置换的若干次幂是可以 \(O(n)\) 计算的。于是总的时间复杂度就是 \(O(nq)\)。
标签:duel,le,2600,log,记录,置换,CF,Delta From: https://www.cnblogs.com/alan-zhao-2007/p/cf-duel-record.html