JZOJ4876. 【NOIP2016提高A组集训第10场11.8】基因突变(2017.8B组)
来源:互联网 发布:经典数据新闻案例分析 编辑:程序博客网 时间:2024/05/28 22:08
https://jzoj.net/senior/#main/show/4876
想法:
拓展KMP的next数组的和
#include <cstring>#include <cmath>#include <cstdio>#include <cstdlib>#include <ctime>#include <iostream>#define maxn 1000010#define ll long longusing namespace std;char s[maxn];ll next[maxn],i,j,p,a,n,ans;int main(){// freopen("gene.in","r",stdin);// freopen("gene.out","w",stdout); scanf("%s",s+1); n=strlen(s+1); p=0; j=-1; next[0]=n; a=0; for (i=1;i<n;i++) { if ((j<0)||(i+next[i-a]>=p)) { if (j<0) { j=0; p=i; } while ((j<n)&&(p<n)&&(s[j+1]==s[p+1])) { j++; p++; } next[i]=j; a=i; } else next[i]=next[i-a]; j--; } for (i=0;i<n;i++) ans+=next[i]; printf("%lld\n",ans); }
阅读全文
1 0
- JZOJ4876. 【NOIP2016提高A组集训第10场11.8】基因突变(2017.8B组)
- 【JZOJ4876】【NOIP2016提高A组集训第10场11.8】基因突变
- JZOJ4876. 【NOIP2016提高A组集训第10场11.8】时空传送 拓扑序判断最长路是否合法
- JZOJ4880. 【NOIP2016提高A组集训第11场11.9】询问 (2017.10B组)
- 4890. 【NOIP2016提高A组集训第14场11.12】随机游走 (2017.10B组)
- 【NOIP2016提高A组集训第10场11.8】时空传送
- 【NOIP2016提高A组集训第10场11.8】力场护盾
- JZOJ4877. 【NOIP2016提高A组集训第10场11.8】力场护盾
- 【NOIP2016提高A组集训第10场11.8】时空传送
- JZOJ4878. 【NOIP2016提高A组集训第10场11.8】时空传送
- 【JZOJ4877】【NOIP2016提高A组集训第10场11.8】力场护盾
- 【JZOJ4878】【NOIP2016提高A组集训第10场11.8】时空传送
- 【NOIP2016提高A组集训第3场10.31】方程式
- 【NOIP2016提高A组集训第5场11.2】夕阳
- 方程式 【NOIP2016提高A组集训第3场10.31】
- 【NOIP2016提高A组集训第7场11.4】连锁店
- NOIP2016提高A组集训第8场11.5 总结
- 【NOIP2016提高A组集训第9场11.7】Simple
- 二维数组的定义方式与细节
- R:向量、矩阵、数组操作
- vim+Vundle+vim-autoformat+astyle格式化代码
- [除法分块] BZOJ1257: [CQOI2007]余数之和sum
- django-pure-pagination的使用
- JZOJ4876. 【NOIP2016提高A组集训第10场11.8】基因突变(2017.8B组)
- struts-struts标签的使用(一)
- 51Nod-1019-逆序数
- Party at Hali-Bula(UVA
- java-----I/O流
- PHP框架
- Code,RO-data,RW-data,ZI-data
- 5296. 【清华集训2017模拟】Sequence 树套树
- windows和linux双系统安装