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 题解的更多相关文章

  1. Codeforces Round #556 (Div. 2) - C. Prefix Sum Primes(思维)

    Problem  Codeforces Round #556 (Div. 2) - D. Three Religions Time Limit: 1000 mSec Problem Descripti ...

  2. Codeforces Round #556 (Div. 2) - D. Three Religions(动态规划)

    Problem  Codeforces Round #556 (Div. 2) - D. Three Religions Time Limit: 3000 mSec Problem Descripti ...

  3. Codeforces Round #569 题解

    Codeforces Round #569 题解 CF1179A Valeriy and Deque 有一个双端队列,每次取队首两个值,将较小值移动到队尾,较大值位置不变.多组询问求第\(m\)次操作 ...

  4. Codeforces Round #556 (Div. 1)

    Codeforces Round #556 (Div. 1) A. Prefix Sum Primes 给你一堆1,2,你可以任意排序,要求你输出的数列的前缀和中质数个数最大. 发现只有\(2\)是偶 ...

  5. Codeforces Round #557 题解【更完了】

    Codeforces Round #557 题解 掉分快乐 CF1161A Hide and Seek Alice和Bob在玩捉♂迷♂藏,有\(n\)个格子,Bob会检查\(k\)次,第\(i\)次检 ...

  6. CFEducational Codeforces Round 66题解报告

    CFEducational Codeforces Round 66题解报告 感觉丧失了唯一一次能在CF上超过wqy的机会QAQ A 不管 B 不能直接累计乘法打\(tag\),要直接跳 C 考虑二分第 ...

  7. Codeforces Round #542 题解

    Codeforces Round #542 abstract I决策中的独立性, II联通块染色板子 IIIVoronoi diagram O(N^2 logN) VI环上距离分类讨论加取模,最值中的 ...

  8. Codeforces Round #556 (Div. 2) D. Three Religions 题解 动态规划

    题目链接:http://codeforces.com/contest/1150/problem/D 题目大意: 你有一个参考串 s 和三个装载字符串的容器 vec[0..2] ,然后还有 q 次操作, ...

  9. Educational Codeforces Round 19 题解【ABCDE】

    A. k-Factorization 题意:给你一个n,问你这个数能否分割成k个大于1的数的乘积. 题解:因为n的取值范围很小,所以感觉dfs应该不会有很多种可能-- #include<bits ...

随机推荐

  1. Python tkinter 副窗体置顶和取消置顶

    root = Tk() #置顶root.wm_attributes('-topmost',1) #取消置顶 root.wm_attributes('-topmost',0)

  2. Bash空格的那点事-乾颐堂CCIE

    先了解下bash中什么时候该用空格,什么时候不该用. 1. 等号赋值两边不能有空格 2. 命令与选项之间需要空格 3. 管道两边空格可有可无 我们来看看常见的问题 1. 赋值时等号两边或者只有左边多了 ...

  3. 从jvm运行机制来分析 String对象负值

    测试1: 代码 public class Test { public static void main(String[] args) { String s1="aaa"; f(s1 ...

  4. Redis缓存相关

    Redis缓存服务搭建及实现数据读写 RedisHelper帮助类 /// <summary> /// Redis 帮助类文件 /// </summary> public cl ...

  5. spark安装配置(scala不是必须的,基于java虚拟机,因此scala可以不配,但是开发需要可以配)

    下载 http://spark.apache.org/downloads.html 下载2.3.1 https://blog.csdn.net/qq_15349687/article/details/ ...

  6. Sed的使用方法简介

    =============Sed================== Sed:是一款流编辑工具,用来对文本进行过滤与替换工作,特别是当你想对几十个配置文件进行统一修改时,你会体会到它的魅力:Sed通过 ...

  7. JavaScript的词法作用域问题

    多年以前,当我怀揣着前端工程师的梦想时,曾经认真阅读过<JavaScript高级程序设计(第2版)>.里面有一个问题(P147),让我一直百思不得其解. function createFu ...

  8. ASP.NET MVC 全局过滤器(FilterConfig)、标记在控制器上和方法上的筛选器执行顺序

    FilterConfig->控制器上的筛选器-->方法上的筛选器(大-->小,上-->下) 全局-->控制器->个别 尝试的时候记得把返回true protecte ...

  9. Oracle.ManagedDataAccess.dll方式操作oracle数据库

    Oracle.ManagedDataAccess.dll方式操作oracle数据库 一.查询语句: using (OracleConnection conn = new OracleConnectio ...

  10. bzoj2662冻结

    题目链接 话说为什么出题人老是卡$SPFA$啊$qwq$ 然而$SPFA$硬是让本宝宝写成了$dij$ 分情况讨论就好 /*************************************** ...