Codeforces Round #505

A. Doggo Recoloring

题目描述:给定一个字符串,每次选择一个在字符串里面出现至少两次的字符,然后将这种字符变成那一种指定的字符,问最终这个字符串能否只剩一种字符。

solution
当长度为\(1\)是,答案是\(Yes\),当长度大于\(1\)时,如果有字符至少出现两次,则答案为\(Yes\)。

时间复杂度:\(O(n)\)

B. Weakened Common Divisor

题目描述:有\(n\)个数对,定义这\(n\)个数对的弱公约数\(d\)为对于每个数对,\(d\)至少是一个数的约数,求任意一个弱公约数。

solution
每个数对的最小公倍数的最大公约数\((ans)\)的质因数一定是答案。求质因数时可以先求\(\sqrt{10^9}\)的质数,然后判断是否是最大公约数的质因数;也可以用\(ans\)与每个数对里的数求公约数(如果求了之后答案不是\(1\)),最后那个就是答案。

时间复杂度:\(O(n)\)

C. Plasticine zebra

题目描述:给定一个由\(w, b\)构成的字符串,可以进行若干次操作,每次将字符串分成两部分,每部分分别翻转,使得最终的字符串中\(b, w\)交替的子串最长,输出长度。

solution
观察可知,最多只会进行一次操作。

时间复杂度:\(O(n)\)

D. Recovering BST

题目描述:给定一个二叉排序树的中序遍历,把这棵树还原出来,使得树的相邻两个点的最大公约数不是\(1\),问是否能还原。

solution
\(dp\)求出每个区间是否能成为左子树和右子树,枚举区间\([L, R]\)内的一个位置\(i\),如果\(i\)的左边能成为左子树,\(i\)的右边能成为右子树,则这个区间可以成为子树,如果\(i\)与\(R+1\)的数的最大公约数大于\(1\),则\([L, R]\)能成为左子树,类似的,如果\(i\)与\(L-1\)的数的最大公约数大于\(1\),则\([L, R]\)能成为右子树。最后整个区间能成为子树即可。

时间复杂度:\(O(n^3)\)

Codeforces Round #505的更多相关文章

  1. Codeforces Round #505 (Div 1 + Div 2 Combined) Solution

    从这里开始 题目列表 瞎扯 Problem A Doggo Recoloring Problem B Weakened Common Divisor Problem C Plasticine zebr ...

  2. 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( ...

  3. Codeforces Round #505 (Div 1 + Div 2) (A~D)

    目录 Codeforces 1025 A.Doggo Recoloring B.Weakened Common Divisor C.Plasticine zebra D.Recovering BST( ...

  4. 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 ...

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

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

  6. Codeforces Round #505 Div. 1 + Div. 2

    传送门:>Here< 从来没打过\(CF\)(由于太晚了)-- 不知道开学了以后有没有机会能够熬夜打几场,毕竟到现在为止都是\(unrated\)好尴尬啊~ 今天早上打了几题前几天的比赛题 ...

  7. 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 ...

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

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

  9. Codeforces Round #505 D. Recovering BST(区间DP)

    首先膜一发网上的题解.大佬们tql. 给你n个单调递增的数字,问是否能够把这些数字重新构成一棵二叉搜索树(BST),且所有的父亲结点和叶子结点之间的gcd > 1? 这个题场上是想暴力试试的.结 ...

随机推荐

  1. Longest Word in Dictionary through Deleting - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Longest Word in Dictionary through Deleting - LeetCode 注意点 长度一样的字符串要按字典序返回较小的 ...

  2. 【Cf Edu #47 F】Dominant Indices(长链剖分)

    要求每个点子树中节点最多的层数,一个通常的思路是树上启发式合并,对于每一个点,保留它的重儿子的贡献,暴力扫轻儿子将他们的贡献合并到重儿子里来. 参考重链剖分,由于一个点向上最多只有$log$条轻边,故 ...

  3. 第三周 构造一个简单的Linux系统

    20135331文艺 首先 在上周内容中我们学习了 计算机三个法宝: 1.存储程序计算机 2.函数调用堆栈 3.中断 本周中得知 操作系统两把宝剑: 1.中断上下文的切换:保存现场和恢复现场 2.进程 ...

  4. PHP获取IP地址的方法,防止伪造IP地址注入攻击

    PHP获取IP地址的方法 /** * 获取客户端IP地址 * <br />来源:ThinkPHP * <br />"X-FORWARDED-FOR" 是代理 ...

  5. 文档比较比对工具Beyond Compare

    Beyond Compare 可以比较文件夹或文件

  6. RabbitMQ 运转流程

    生产者发送消息 1.生产者连接到 RabbitMQ Broker,建立一个连接(Connection),开启一个信道(Channel) 2.生产者声明一个交换器,并设置相关属性,比如交换机类型.是否持 ...

  7. awk 脚本同时解析多个文件

    ARGC        The number of command line arguments (does not include                   options to gawk ...

  8. Django paginator and Form

    django  提供的分页器 django 官方链接: https://docs.djangoproject.com/en/1.11/topics/pagination/ django提供了一些类来帮 ...

  9. GetVersionEx 正确获取windows10版本

    vs2008直接将下面xml保存成文件添加到资源文件 vc的话insert-->Resource-->Custom-->输入24,ok-->id改为1-->把下面内容保存 ...

  10. 项目经验总结-twice

    1.尽量指定类.方法的final修饰符 带有final修饰符的类是不可派生的.在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的.为类指定 ...