Codeforces Round #556 题解
Codeforces Round #556 题解
Div.2 A Stock Arbitraging
傻逼题
Div.2 B Tiling Challenge
傻逼题
Div.1 A Prefix Sum Primes
傻逼题,先放2,1然后放完2然后放完1
Div.1 B Three Religions
有三个字符串\(s_1,s_2,s_3\)和一个主串\(s\),每次操作改变一个\(s_i\)(插入或删除字符),每次操作完之后问\(s\)是否可以分成\(3\)个子序列正好是\(s_1,s_2,s_3\)。任意时候\(|s_i|\leq 250\)。
设\(nxt[x][i]\)表示主串上字符\(i\)在\(>x\)上第一个出现的位置。
设\(f[x][y][z]\)表示三个串分别匹配到\(x,y,z\)需要主串的最短长度。
那么这个可以\(O(1)\)转移,只要枚举拼起来的最后一个字符就行了。
插入最多改变\(251^2\)个\(f\)值,每次插入dp一遍多出来的\(f\)就行了。
https://codeforces.com/contest/1149/submission/53513066
Div.1 C Tree Generator™
有一个合法的括号序列,每次交换两个括号(保证还是合法)求这个括号序列对应的树的直径
Orz zsy碾标算
直径相当于选一段,匹配完括号以后剩下最多的括号数
然后(因为zsy太强了)等于这一段分成两段后面的权值和-前面的权值和最大值,其中左括号权值为1,右括号为-1,证明显然
所以在线段树上维护一堆东西。。。就行了
要维护的:最大/最小前/后缀和,最大前/后缀的\(d\)值,序列整体\(d\)值,权值和,答案
一段的\(d\)值就是将这一段分成两段后-前权值最大值
https://codeforces.com/problemset/submission/1149/53591504
Div.1 D Abandoning Roads
我是sb。。考场上读错题了。。。
有一张图只包含边权为\(a,b(a<b)\)的边。对于每个点\(p\)求一个最小生成树满足\(1\)到\(p\)距离最小。
显然最小生成树会先取完\(a\),那么先预处理出\(a\)边组成的联通块。\(1\)到\(p\)的最短路边权为\(b\)的边一定连接两个不同的联通块,而且都会走到一个之前没走过的联通块。那么可以状压所有联通块,最短路的同时记一下走过哪些联通块了,走\(b\)边时判一下新的联通块有没有走过。点数是\(O(2^nn)\)级别的。
可以发现如果一个联通块点数\(\leq 3\),那么在这个联通块先走\(b\)边出去再走\(b\)边回来是没有意义的,因为这样至少走\(2b\),而这个联通块内部最长也就最多\(2a\)。所以不需要记这些联通块,点数降到\(O(2^{n/4}n)\)就可以直接做了。
https://codeforces.com/contest/1149/submission/53592086
Div.1 E Election Promises
有一张有向无环图,每个点有权值。双方轮流操作,每次操作降低一个点的权值然后任意修改这个点所有后继的权值。不能操作者输。判断先手胜负,如果先手胜输出第一步走的一个可行方案。
先摆结论:\(SG(x)=\mathbb{mex}_{x\rightarrow i}SG[i]\),\(sum(x)=\oplus_{SG(i)=x}h_i\)。如果有一个\(sum(x)\neq 0\),先手必胜;否则必败。
感性证明:设第\(x\)层表示满足\(SG(i)=x\)的所有\(i\)。显然对第\(x\)个点进行降低权值操作时不会影响到\(>x\)的层,但会影响所有\(\leq x\)的层。
操作的时候可以将所有\(<x\)层的\(sum\)都变成\(0\),所以双方每次都会操作最大的层,因为小的层没有意义。而每一层是一个取石子游戏。
如果所有\(sum\)为\(0\),先手操作了第\(i\)层,那么操作后一定有\(sum(i)>0\)。后手就再次操作使得\(sum(i)=0\)。因为先手还可能影响了\(j<i\)的层,所以把这些层也变为\(0\)。这也是第一步的方案求法。
https://codeforces.com/contest/1149/submission/53593317
Codeforces Round #556 题解的更多相关文章
- Codeforces Round #556 (Div. 2) - C. Prefix Sum Primes(思维)
Problem Codeforces Round #556 (Div. 2) - D. Three Religions Time Limit: 1000 mSec Problem Descripti ...
- Codeforces Round #556 (Div. 2) - D. Three Religions(动态规划)
Problem Codeforces Round #556 (Div. 2) - D. Three Religions Time Limit: 3000 mSec Problem Descripti ...
- Codeforces Round #569 题解
Codeforces Round #569 题解 CF1179A Valeriy and Deque 有一个双端队列,每次取队首两个值,将较小值移动到队尾,较大值位置不变.多组询问求第\(m\)次操作 ...
- Codeforces Round #556 (Div. 1)
Codeforces Round #556 (Div. 1) A. Prefix Sum Primes 给你一堆1,2,你可以任意排序,要求你输出的数列的前缀和中质数个数最大. 发现只有\(2\)是偶 ...
- Codeforces Round #557 题解【更完了】
Codeforces Round #557 题解 掉分快乐 CF1161A Hide and Seek Alice和Bob在玩捉♂迷♂藏,有\(n\)个格子,Bob会检查\(k\)次,第\(i\)次检 ...
- CFEducational Codeforces Round 66题解报告
CFEducational Codeforces Round 66题解报告 感觉丧失了唯一一次能在CF上超过wqy的机会QAQ A 不管 B 不能直接累计乘法打\(tag\),要直接跳 C 考虑二分第 ...
- Codeforces Round #542 题解
Codeforces Round #542 abstract I决策中的独立性, II联通块染色板子 IIIVoronoi diagram O(N^2 logN) VI环上距离分类讨论加取模,最值中的 ...
- Codeforces Round #556 (Div. 2) D. Three Religions 题解 动态规划
题目链接:http://codeforces.com/contest/1150/problem/D 题目大意: 你有一个参考串 s 和三个装载字符串的容器 vec[0..2] ,然后还有 q 次操作, ...
- Educational Codeforces Round 19 题解【ABCDE】
A. k-Factorization 题意:给你一个n,问你这个数能否分割成k个大于1的数的乘积. 题解:因为n的取值范围很小,所以感觉dfs应该不会有很多种可能-- #include<bits ...
随机推荐
- IIS7日志中时间与系统时间不一致的原因
最近在分析web日志,发现IIS7日志中时间与系统时间不一致,即本该上班时间才产生的产并发访问日志,全部发生在凌晨至上班前. 本以为是系统时间设置错误,检查后一切正常.后查询资料,原来是这个原因: 日 ...
- MYSQl修改临时文件目录
MSYQL在执行查询语句时报出以下错误: ERROR 3(HY000):Error writing file 'tmp/MY1yjZEI'(Errcode:28) 看了下/tmp所在目录的磁盘情况,发 ...
- catkin地址
Source: git https://github.com/ros/catkin.git (branch: kinetic-devel)
- 如何将.crt的ssl证书文件转换成.pem格式
如何将.crt的ssl证书文件转换成.pem格式 摘自:https://www.landui.com/help/show-8127 2018-07-04 14:55:41 2158次 准备:有一台安装 ...
- hdu 折线分割平面(递推)
题解: 首先我们考虑直线的情况: 当n=1时原来的1个平面被分割成了2个: 当n=2时原来的2个平面被分割成了4个: 当n=3时原来的4个平面被分割成了7个: 也就是说F(n)=F(n-1)+n且n= ...
- ubuntu 14.04 下配置 Go 1.51
1.最简单的直接的方式(不用设置GOROOT) - 下载 归档文件 并解压到 /usr/local/go/ - 设置环境变量 - 设置系统级的 gedit /etc/profile # 在最末尾加 ...
- java中jar打包的方法
jar 应用 先打开命令提示符(win2000或在运行筐里执行cmd命令,win98为DOS提示符),输入jar -help,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:用法:ja ...
- 学习python3
定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定 ...
- Servlet 学习总结-1
JavaWeb应用程序中所有的请求-响应都是由Servlet来完成的.Servlet是Java Web的核心程序,所有的网址(请求-响应)都交给Servlet来处理. Servlet在Web应用中被映 ...
- redis整理の持久化机制
redis是一个支持持久化的内存数据库,也就是说 redis 需要经常将内存中的数据同步到磁盘 来保证持久化.redis 支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另 ...