CF Record

div2 A~C 不写了

11.10 CF1548 (VP div 2)

想打一场 div2 练手速。然后被 div2 反杀了、

开始 ABC 非常迅速地打完了,然后开始看 D。很不理解,然后想了一个很对的做法,然后疯狂 WA5。WA 到后面直接弃疗了。被反杀了 /ll

哦,D 是因为,\(n=1\) 的特判在读入前就判掉了,导致出问题 /ll

D

同余 \(\to\) 差分的 \(\gcd\) 不为 1。然后用 st 表倍增一下即可。

https://codeforces.com/contest/1549/submission/134955188

E

相当于求所有 \(f_x=\sum_{i=1}^{n}\binom{3i}{x}\)。考虑用生成函数。

\[f_x=\sum_{i=1}^{n}\binom{3i}{x}=[x^i]\sum_{i=1}^{n}(1+x)^{3i}=[x^i]\frac{(1+x)^{3n+3}-(1+x)^3}{(1+x)^3-1} \]

直接手动乘除即可。

https://codeforces.com/contest/1548/submission/134960690

F1

根据 Pick 定理,对于任意整点多边形,\(S=\frac{边界格点数}{2}+内部格点数-1\),由于 \(S\) 是正的,内部格点数要是奇数,边界格点数只能是偶数,即 \(\sum \gcd(x_a-x_b,y_a-y_b)\equiv 0\pmod 4\)

所以点在模 4 意义下的值才是有用的,于是开桶计数即可。

https://codeforces.com/contest/1548/submission/135028705

11.12 CF1586(VP div1+2)

本来可以AC 6题,然后 F 题没时间调完了。罚时巨大多,手速巨慢。

这种比较紧的构造题一定要注意细节啊,尽量测一测紧的数据。

D

我们发现如果得到了 \(p_n\) 可以通过 \(n-1\) 次询问 \(\{p_n,\dots,p_n,i\}\) 得到 \(i\) 在什么位置。

至于如何得到 \(p_n\),考虑询问 \(\{n,\dots,n,x\}\),如果有结果那么意味着 \(p_n\neq x\),所以一直问到返回无解就可以得到 \(p_n\) 了。

写的时候第二个询问不小心问了一个 \(0\) WA 了一次。

https://codeforces.com/contest/1586/submission/135061477

E

因为图的路径不好处理,猜了一下应该是在任一生成树上完成的。结果还真是这样。

随便拉一棵生成树出来,然后暴力询问和修改,然后处理第二个问题时树上贪心即可。

结果第一发的贪心崩掉了 WA 了一次。

https://codeforces.com/contest/1586/submission/135064370

F

考虑建出类似分块树状物(不用建树,算一下即可),二分答案,然后以 \(k\) 为块长看能不能建出(实际上好像不需要二分)。

然后对于 \(x,y\),暴力找到他们哪一层开始分叉,然后颜色即为层数。

这个 trick 正睿见过两次了。但是这一次的话会比较紧,所以要格外当心。

https://codeforces.com/contest/1586/submission/135074554

11.12 CF1605 (div 2)

开了个小小号玩一玩。

数组 swap 是不行的!数组 swap 复杂度线性!数组不要 swap!

md 因为这个 D TLE 了好久。

还好最后海底捞月看了下 hpdf 的代码把 E 调出来了。

这场巨多大诈骗题,A \(ans\) 只可能是 \(0/1\),B 步数也只可能是 \(0/1\),C \(ans\) 只可能是 \([0,7]\),D 的最优化其实就是所有都是……

D

\(\text{xor} <\min\) 相当于有共同的 hightbit。

首先要猜到实际上是可以做到所有点都可以的……

highbit 为 \(i\) 的数有 \(2^{i-1}\) 个。容易发现我们可以把数分成两个集合(集合大小任意),使得不同集合的 highbit 不同,即给一个二分图标号使得左部和右部的标号 highbit 不同。

树是二分图。

于是凑一下即可。

https://codeforces.com/contest/1605/submission/135149143

E

首先 \(a_i:=a_i-b_i\),容易得到答案 \(ans=\sum_{i=1}^{n} |\sum_{j|i} \mu(i/j) a_j|\)

难处理的是这个绝对值。首先我们先假设所有东西均为正得到一个答案。然后考虑加入 \(1\) 后会有什么影响。

我们给所有东西排个序,可以二分到加入 \(1\) 后哪些东西要变成负号,然后把这部分前缀取反即可。这里维护一个前缀和(双倍的),然后二分完就可以直接算答案了。

https://codeforces.com/contest/1605/submission/135170165

F

做 div2 碰到 div1 级别的题,稳赚不亏!

11.16 CF1392

感觉 G 好有意思,啥都想不到。

D

发现题目条件相当于不存在连续三个一样,然后枚举钦定前两个的取值,然后 DP。

https://codeforces.com/problemset/submission/1392/135829653

E

1 2 4 8 16...
0 0 0 0 0...
4 8 16 32 64...
0 0 0 0 0...
16 32 64 128 256....
...

这样构造即可

https://codeforces.com/problemset/problem/1392/E

F

最后一定是要么一段连续上升序列,要么只有一处相邻的地方相等。然后直接算。

https://codeforces.com/contest/1392/submission/135838524

原文地址:https://www.cnblogs.com/TetrisCandy/p/15540630.html