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

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]}$$

复杂度$O(n^3)$

 

E

想法题

基本的套路是我们找到一个basic state,然后把开始状态和结束状态都转移到basic state

有众多方法 我只讲一个

就是我们把所有designated places都放到第一行上

这是很简单的 我们从上往下,每一行从左往右遍历,然后按照遍历到的顺序把这些格子放到第一行上去

就是第一个遍历到的放到(1,1),第二个遍历到的放到(1,2)……

因为在遍历到一个格子的时候,他前面的格子都被放好了 所以我们可以很轻易的把他放到应该放的位置上

现在我们变成了一个新的问题:两个1*k的序列,我们要通过一些操作变得相同

这也是很简单的

如果总行数只有两行 那么可以手算出来

当总行数超过3行的时候

我们从第一个格子开始 加入他现在在(1,i)要移动到(1,j)

我们把它通过下列操作移动:(1,i),(2,i),……,(2,j),(3,j)

然后我们再把所有第三行上的格子移到第一行

由于移动过程中第二行永远是空或者只有一个格子在移动,所以可行

总操作数:

第一步大概在$n^2$次操作,第二步大概在$n^2$次操作,第三步和第一步一样

所以总操作数大概为$3n^2$

 

F

 

 

G

我们给一个有k个子节点的连通块赋值为$2^k-1$

考察合并操作

我们发现 合并操作前 权值为$2^a-1+2^b-1$

如果把b放到a下面 权值变为$2^{a+1}-1$

如果把a放到b下面 权值变为$2^{b+1}-1$

那么期望权值就是$\frac {2^{a+1}-1} {2} + \frac {2^{b+1}-1} {2}=2^a+2^b-1$

所以总权值+1

那么我们只要算出开始权值和结束权值(就是$2^{n-1}-1$) 他们的差就是答案

Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) 题解的更多相关文章

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

    http://codeforces.com/contest/1025/problem/D 树 dp 优化 f[x][y][0]=f[x][z][1] & f[z+1][y][0] ( gcd( ...

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

    B. Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input ...

  3. Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) B. Weakened Common Divis

    题目链接 让你找一个数,使得这个数,可以被每个二元组的两个数中的一个数整除. 先将第一个二元组的两个数质因数分解一下,分解的质数加入set中,然后,对剩下的n-1个二元组进行遍历,每次遍历到的二元组对 ...

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

    A : A. Doggo Recoloring time limit per test 1 second memory limit per test 256 megabytes input stand ...

  5. Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-C. Plasticine zebra

    问了学长,感觉还是很迷啊,不过懂了个大概,这个翻转操作,实质不就是在序列后面加上前面部分比如 bw | wwbwwbw  操作过后 wbwbwwbww 而 bw | wwbwwbwbw 这样我们就知道 ...

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

    [链接] 我是链接,点我呀:) [题意] 给你一个字符串s. 让你在其中的某一些位置进行操作.. 把[1..i]和[i+1..n]翻转. 使得里面01交替出现的那种子串的长度最长. [题解] 可以用a ...

  7. 【Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) A】 Doggo Recoloring

    [链接] 我是链接,点我呀:) [题意] 你可以把出现次数大于1的颜色换成其他颜色. 问你最后能不能全都变成同一种颜色 [题解] 判断一下有没有出现次数大于1的就好. 有的话.显然可以一直用它变颜色. ...

  8. 【Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) B】Weakened Common Divisor

    [链接] 我是链接,点我呀:) [题意] 给你n个数对(ai,bi). 让你求一个大于1的数字x 使得对于任意的i x|a[i] 或者 x|b[i] [题解] 求出第一个数对的两个数他们有哪些质因子. ...

  9. E - Down or Right Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)

    http://codeforces.com/contest/1023/problem/E 交互题 #include <cstdio> #include <cstdlib> #i ...

随机推荐

  1. 写码时应该缩进使用 tab 还是空格?

    对于程序员来说,其实Tab和空格远远不只是“立场”问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了.空格不会出现这个问题,因 ...

  2. ADO直接调用ACESS数据库MDB

    1.ADO用ODBC链接不会出现堆栈溢出. 2.直接用ADO链接,因为对象不是NEW出来的,导致其成员变量也是栈上的,数组申请过大,栈溢出. 用VECTOR或者NEW对象,应该能解决.

  3. 迭代器模式(Iterator.hasNaxt())

    迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式.这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示. 迭代器模式属于行为型模式. ...

  4. git apply、git am打补丁.diff 和 .patch【转】

    本文转载自:https://www.jianshu.com/p/e5d801b936b6 前提: 生成patch: git format-patch -M master 生成指定patch,0163b ...

  5. confluence的使用

    搜索文档的技巧 在confluence中进行搜索的时候,也需要使用通配符.比如搜索cmscontext,需要这么搜索cmscontex*,如果搜索的话,cmscontext.geturl是会被过滤掉的 ...

  6. JavaScript实现Map、Reduce和Filter

    1. [代码][JavaScript]代码     <script type="text/javascript">// 函数式编程:// 描述我们要做什么,而不是我们如 ...

  7. 90年代经典“手游”—拼图板小游戏Opencv实现

    80后可能还对儿时玩过的一种经典木质的拼图板游戏记忆犹新,一般是一种4*4或5*5规格的手持活动板,通过挪动每个小板子的位置,拼出来板子上完整的图像,那时候还没有网吧,手机也还是大哥大的天下,所以这也 ...

  8. QT官网开源版下载引导(不用登录QT账号)

    一.进入QT官网下载页,首先映入眼前的就是一幅用户选择的调查引导,如下图 二.上图页面显示的可以忽略,直接在上图下载页面上下拉至底部,选择OpenSource->Get started即可进行下 ...

  9. Codeforces-914F Substrings in a String (Bitset求T串中S串出现次数)

    之前有过区域赛,简化版问题: 给定一个小写字符组成的字符串S,(|S|<1e5,下标从1开始),现在有Q种操作,对于每个操作Q(Q<=1e5),输入opt, 如果opt==1,输入x,c, ...

  10. Android 业务组件化开发实践

    组件化并不是新话题,其实很早很早以前我们开始为项目解耦的时候就讨论过的.但那时候我们说的是功能组件化.比如很多公司都常见的,网络请求模块.登录注册模块单独拿出来,交给一个团队开发,而在用的时候只需要接 ...