Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) 题解

Posted wawawa8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) 题解相关的知识,希望对你有一定的参考价值。

真心简单的一场比赛 就是坑比较多(自己太蠢)

A是一个水题 3分钟的时候过了

B也是一个比较简单的题 类似的套路见得多了 但是我当时可能比较困 想了一会才想出来 19分钟的时候过掉了

C同样很显然 性质不难发现 我在30分钟的时候通过了pretest 但是由于自己的愚蠢 忘记写了一句话 导致FST了。。。

D本来是一个简单的dp题 但是我一直没往dp上想 在网络流上刚了1h之后终于换了思路 在1:45的时候通过了他

然后就时间不多了 E都没看 就去hack 成功hack了2个之后比赛就结束了

 

题解

 

A

如果有两个同样的puppies就符合条件 因为我们可以用这两个把他变成别的颜色 然后就可以一个个把颜色都清除 直到最后剩下一种颜色为止

注意如果长度为1也就是只有1个字符也是可以的 要特判

 

B

我们可以发现如果可行,那么一定有一个质数满足条件

然后我们可以找到$a_1$和$b_1$的所有质因数,分别看他们是否满足条件即可

 

C

假如我们把一个串s分成 s1|s2

那么我们做完操作之后 串变成s1|s2

其中s表示s的倒序

那么我们如果把串写在环上 会发现操作之后整个环没有实质上的

比如串bwbwbwbbwbwb 我们在第4位截开 并操作一番

技术分享图片

然后我们把第二个环倒置(s到t变成t到s)并且旋转4个位置

技术分享图片

我们得到了原来的环

所以说明了操作不会改变环的实质

所以我们只要计算环上最长的"zebra"长度即可

把串复制一遍 然后扫一遍就可以得到答案

 

D

令$dp1[l][r]$表示从$l$到$r$这一段,以$l-1$为根,能否做成bst

$dp2[l][r]$表示从$l$到$r$这一段,以$r+1$为根,能否做成bst

那么我们这样转移:

$$dp1[l][r]=Or_{k in (l,r), gcd(a_{l-1},a_k) gt 1} {dp2[l][k-1] & dp1[k+1][r]}$$

$$dp2[l][r]=Or_{k in (l,r), gcd(a_{r+1},a_k) gt 1} {dp2[l][k-1] & dp1[k+1][r]}$$

以上是关于Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) 题解的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)

codeforces cf round#505(based on vk cup 2018 final) C. Plasticine zebra

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) -B C(GCD,最长连续交替序列)

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) 题解

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) BWeakened Common Diviso(代

Educational Codeforces Round 75 (Rated for Div. 2)