[ZROI #316] ZYB玩字符串】的更多相关文章

Introduction 每次在一开始为空的串$S$的任意位置插入串$p$ 给出最终的$S$,求长度最短(相同时字典序最小)的串$p$ Solution: 样例出锅差评啊,让我这种直接看样例选手挂掉50分啊…… 所以说不管怎么样都要好好看输入/输出格式,看看有没有多测 非常直观的思路就是$O(len^2)$枚举所有$S$的子串进行判断 暴力的话就是每次选择一个$p$将其删去并继续递归下去 同时对于随机的点可以直接上贪心:每次直接删去第一个$p$ 接下来考虑满分算法 首先$O(len^2)$对$p…
题目描述 $ZYB$获得了一个神秘的非空字符串$p$. 初始时,串$S$是空的. $ZYB$会执行若干次这样的操作: $1.$选取$S$中的一个任意的位置(可以是最前面或者最后面) $2.$在这个位置上插入一个完整的$p$,得到一个新的$S$. 但是$ZYB$不小心把$p$弄丢了. 他告诉你现在的$S$是什么,请帮他还原出可能的$p$. 如果有多个$p$符合要求,选取长度最短的. 如果仍然有多解,选取字典序最小的. 输入格式 从文件$string.in$中读入数据. 这道题有多组数据,第一行一个…
题目 题目大意 有一个字符串\(p\).一开始字符串\(s\)为空串. 接下来进行若干次操作:在\(s\)的某个空隙中插入\(p\). 给出操作后的\(s\),问长度最小的\(p\). 思考历程 感觉是一道神仙题. 于是考虑暴力. 在\(s\)前面找连续的最长串,作为\(p\)的前缀.显然这个串中只出现过一次\(s_1\) 同样地,在后面也找一条,作为后缀. 将前缀出现的位置和后缀出现的位置标记一下. 统计每个字符出现的个数,求最大公因数\(g\),表明操作的次数为\(g\)的因数. 然后按照长…
题目链接 设可能的答案串为p,长为len.p一定是s的一个子串且len|n. 虽然一些p在s中可能被断成若干段,但删掉其中的若干段后,这段区间一定会被全部消掉. 于是枚举p后,可以用f[i][j]表示区间[i,j]是否合法.len不需要整除区间长度,多余的部分要匹配p的前缀(匹配什么后缀啊,大不了从前面开始). f[i][j]可以由j-1拼,即 \(f[i][j]|=f[i][j-1]\ \&\&\ s[j]==p[(l-1)/l+1] (l=j-i+1)\). 也可以是j和前面构成了可消…
比赛的时候又被垃圾题艹翻了啊. 这个题显然是区间dp 考虑怎么转移. 类似消除方块和ZYB玩字符串那样的一个DP. 可以从左到右依次考虑消除. dp[l][r][k][flag]表示区间l,r左边粘着k个flag. 转移方式: 1.考虑强行去继续黏上下一个字符并使k+1. 2.考虑把一段跳过去,让被跳过的这一段自行不与外界产生关系被消除,然后再去消除后面的. 3.直接消除当前粘着的一段,并获得收益. #include<iostream> #include<cctype> #incl…
在这么考下去可以去混女队了2333 两天总分rank14,退役稳稳的 的确就是没状态.满脑子都是<包围保卫王国>ddp/LCT/ST,没好好考试. 我太菜了写题也写不出来考试也考不好(显然<保卫王国>40分钟是调不出来的) 也不知道为什么特别想A了它...莫名的执念 也许所谓的OI也就是一念之间的问题吧. T1:ZYB修围墙 答案有可能是偶数.扩展一面墙的时候相对的墙不一定要扩展. 边长为a时,6次扩展的收益分别为a,a-1,a,a,a,a #include<cstdio&g…
写在前面: 虽然拿到了rk1,但是T3被卡常TLE90分,(考后再交就A了!?),lemon80,又丢失了一次良好的AK机会, 掐头去尾距离联赛仅剩2天,最近中午一直睡不好,可能是有些紧张, 希望自己接下来几天能放平心态,从吾心,尽吾力就好. A. 装饰 标签: 规律 题解: 假设a为最大值 1>a<=2*(b+c) ans=(a+b+c)/3 这种情况下不会出现a 0 0的情况,答案就是(a+b+c)/3 2>otherwise ans=b+c 反之,最多b+c次之后就会用完b,c,所…
ZYB和售货机(图论,环) 题目链接 个人感觉这道题与基环树没有任何关系,你会发现,每个点最多只有一个入度和出度,所以只能是链或环. 还有就是本题的突破点就在于正确建图,题目的限制保证每个点的入度不大于1,那么我们只需要让每个点连接最优代价的点,这样就可以保证每个点的出度不大于1. ZYB玩字符串(DP,字符串) 题目链接 首先我们需要知道字典序不等同于题目中给的排序方法. 然后需要知道的是不能按照顺序只要匹配成功就删掉,这样会不对,比如 \(ababaa\),所以消除的顺序是一个要点. 本题的…
前言 一整套都是水题(尽管 T4 稍有难度.. 从各位的分数上就可以看出来..Max 的 T1 打挂了,不然就有人 AK 了.. 感觉还好,最后还有 1h 看了看 T4 ,感觉有一点思路,就瞎 jb 胡了上去,样例一过想都没想直接走了.. 最后发现和正解的复杂度其实差了一个 n ,思路大体上是对的,但是题目有关于 \(b(S)\) 的定义审错了,也不知道要取较大的 k ... 比较爽的就是拿下了两个首切(尽管是水题.. 然后在联考的官网上的排名就比较靠后了,大概到了 26 名,不得不说 cqbz…
T1 ZYB和售货机 首先这道题有两种做法. 一种是发现每个点都可以先被取到只剩一个,只要收益大于$0$ 然后发现建一个$i->f[i]$的图时出现环,要把它去掉, 那么跑一个$tarjan$枚举每一个强联通分量然后找到收益获得最少的边删掉就行 第二种做法是建立两个数组$mx[f[i]],nx[f[i]]$分别表示对于连向$f[i]$的边中收益最大和次大的点 那么我们像跳父亲一样$dfs$,找到一个环就比较他们构成环的最大点与次大点里面差值最小的 记录这个点为$x$,那么对于$x$,需要少让他被…