JZOJ5272. 神奇的重复序列 结论
来源:互联网 发布:图床源码 编辑:程序博客网 时间:2024/06/04 13:07
不知道这题该归类到什么东西里面。。。
可以发现,假设最终通过改变而相同的子串,假设他们一个结尾在i,一个结尾在j,设k=j-i,他们中的子串中任意两个下标%k相同的位置,他们的字符肯定也相同(结论。)
那么知道这一点后我们就可以开始乱搞了(迷)
我们先枚举周期k,然后扫一遍串。
每一次维护一个右指针r,表示最多能延伸到哪里,然后设一个need表示当前用了多少次机会,那么每次我们可以更新答案ans=max(ans,r-i-k)(k=j-i,r-i-k=r-j)
然后删除左指针,当然这都是在%k意义下进行的。
然后为了维护,我们要记录几个值:
cnt[i][j]表示在i%k的位置我出现了多少个字符为j
t[i][j]表示cnt[i]内有多少个值为j。
mx表示cnt[i]中的最大值。
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#define fo(i,a,b) for (int i=a;i<=b;i++)#define fd(i,a,b) for (int i=a;i>=b;i--)using namespace std;const int N=3e3+5;int m,k,n,cnt[N][26];int mx[N],need,ans,t[N][N];char s[N];inline void ins(int r,int x,int op){ if (op==1) { cnt[r][x]++; need++; int y=cnt[r][x]; t[r][y-1]--;t[r][y]++; if (y>mx[r]) mx[r]=y,need--; } else { cnt[r][x]--; need--; int y=cnt[r][x]; t[r][y+1]--; t[r][y]++; if (!t[r][mx[r]]) mx[r]--,need++; }}int main(){ freopen("repeat.in","r",stdin); freopen("repeat.out","w",stdout); scanf("%d",&k); scanf("%s",s+1); n=strlen(s+1); fo(l,1,n-1) { int r=0; need=0; fo(i,0,l-1)t[i][0]=26,mx[i]=0; fo(i,1,n) { while (need<=k&&r<n) r++,ins(r%l,s[r]-'a',1); ans=max(ans,r-i-l); ins(i%l,s[i]-'a',-1); } fo(i,0,l-1) fo(j,0,25) t[i][cnt[i][j]]=0,cnt[i][j]=0; } printf("%d\n",ans); return 0;}
阅读全文
0 0
- JZOJ5272. 神奇的重复序列 结论
- jzoj5272 神奇的重复序列 (寻找性质)
- 【JZOJ5272】【GDOI2018模拟8.14】神奇的重复序列
- 【JZOJ5272】【GDOI2018模拟】神奇的重复序列(DP,性质题)
- 【JZOJ 5272】神奇的重复序列
- 【JZOJ 5272】 神奇的重复序列
- 1007神奇的序列
- ZUFE2480: 神奇的序列
- WUSTOJ 1961 神奇的序列
- qwb与神奇的序列
- 神奇的序列 HNUST 1883
- 神奇的Python生成表达式(仅测试,无理论依据,但结论可靠)
- JAVA自定义序列化的神奇方法
- zufe 神奇的序列计算 (树状数组)
- 晋城一中oj 神奇的序列
- Problem D: qwb与神奇的序列
- bzoj1006 神奇的国度【完美消除序列】
- 向set,map放入重复数据的测试.结论为新数据
- 【C语言】【unix c】如何察看bash下的环境变量
- 关于进程间通信杂谈
- 一个简单class
- 【二分图匹配入门专题1】O
- 《大逃杀》人物关系图
- JZOJ5272. 神奇的重复序列 结论
- 【C语言】【unix c】如何访问环境变量的值
- 一头坑进Redis之Linux安装
- #Qt入门#-----HelloWorld
- HDU 1003 Max Sum && HDU 1081 To The Max 一维子串最大和& 二维矩阵最大和
- 【C语言】【unix c】如何为自定义变量赋初值
- 信息系统项目管理师笔记
- Oracle-blob转字符串遇到中文乱码的问题
- H5面试题---在JS中typeof返回的结果有哪几种?