CF 杂题选做

Codeforces Round #700

A,B 题:快进。

C 题:
难度:1.7
看到询问次数不难想到跟 l o g log log 结合在一起,证明一个结论:若一个区间 [ l , r ] [l,r] [l,r] 满足 a l − 1 > a l a_{l-1}>a_l al1>al a r + 1 > a r a_{r+1}>a_r ar+1>ar 的值则其中一定存在合法解。

显然原区间满足限制。

显然二分了之后左右会有一个区间满足限制,于是直接递归下去即可。

D1 题
难度:1.9
贪,就硬贪。

原问题等价于有两个队列,每个数加入一个队列,当讨论到第 i i i 个数的时候,分类讨论:

  • 该数和一个队尾相同,则加入另一个。
  • 和两个队尾都不同,加入队尾后继小的一个。
    正确性自行感性理解。

D2 题:
难度: 1.9
和 D1 的差别是一个求最小,一个求最大。和上个一样。

E 题:
难度:2.4
还算有趣的二进制拆分构造题,可惜以前做过了几乎一样的,就觉得略显套路了。

首先 n = 32 n=32 n=32 绝对跟二进制脱不了干系。

可以想到相邻两个点之间连两条边,边权分别为 0 0 0 2 i 2^i 2i,即可求得答案。

Codeforces Round #699

A,B 题:快进。

C 题:
难度:1.3(思维) 1.7(代码)

不难想到局面可以倒推,直接模拟即可,但是比较难写,所以代码鸽了。

D 题
难度:2.1
大力分类讨论的构造题,自己没想出来可能是因为想的时候没带草稿纸。

首先如果存在 C u , v = C v , u ( u ≠ v ) C_{u,v}=C_{v,u}(u\neq v) Cu,v=Cv,u(u=v) 就可以直接沿着这两条边走。

那么此时任意两点之间两边颜色不同。

如果 n n n 为奇数,那么显然可以沿着两点之间走,走出来就是 ABABABABABA...

然后此时 n n n 为一个奇数,此时我就不会了。。看了题解才晓得原来是考虑一个三元环 x , y , z x,y,z x,y,z,则其中必存在一个 C x , y = C y , z C_{x,y}=C_{y,z} Cx,y=Cy,z 这种,以此继续分类讨论。

如果 m 2 \frac{m}{2} 2m 是奇数,那么可以构造为aabbaabbaabbaabbaabb...

否则,就得到 ...baab... 这样一组解(这个地方需要手玩一下)。

E 题:
难度:2.0
主要难度在于如何想到 dp(我一直再往贪心上想,于是就不会了

おすすめ

転載: blog.csdn.net/cryozwq/article/details/120963854
おすすめ