【学姐的胡策】训练8.18(KMP+dp)
来源:互联网 发布:叙利亚2017 知乎 编辑:程序博客网 时间:2024/04/28 17:17
题目:学姐的原题
题意:给定字符串s,输出前缀后缀相等的长度 并 找到他们在字符串中出现的次数
题解:
第一问是KMP原题,第二问是一个巧妙的dp,值得思考
代码:
#include <cstdio>#include <cstring>#include <iostream>#define N 100005using namespace std;int len[N],t[N],l,dp[N];char st[N];void sp(){int i,j;t[0]=-1;for (i=0;i<l;i++) { j=t[i]; while (j!=-1 && st[i]!=st[j]) j=t[j]; t[i+1]=++j; } }int main(){int i;gets(st);l=strlen(st);sp();int j=l,hh=0;while (j){len[++hh]=j;j=t[j];} for (i=l;i;i--) { dp[i]++; dp[t[i]] += dp[i]; }printf("%d\n",hh);for (i=hh;i>=1;i--) printf("%d %d\n",len[i],dp[len[i]]);}
阅读全文
1 0
- 【学姐的胡策】训练8.18(KMP+dp)
- 【学姐的胡策】训练8.17(Lucas+线段树并查集)
- 【loli的胡策】NOIP训练8.12(二分?+dp?)
- 【龙队的胡策】训练8.21(?+dp+lct)
- 未解决 训练赛3 ,kmp || 字符串哈希(没学)Censor SCU
- 【loli的胡策】NOIP训练7.15(签到+dp+线段树)
- 【loli的胡策】NOIP训练7.18(乱搞+背包dp+并查集分治)
- 【loli的胡策】NOIP训练8.10(数论+树形dp+贪心)
- 【loli的胡策】NOIP训练10.2(快速幂+树形期望dp)
- 【平安夜的胡策】训练12.24(复数预处理+矩阵快速幂+dp)
- 我的DP训练情结(starting...)
- Oxer的dp训练
- hdu3336(KMP+DP)
- hdu3689(kmp+dp)
- hdu3336(KMP+DP)
- hdu3336(kmp+dp)
- zoj3587(kmp+dp)
- HDU 4552 怪盗基德的挑战书(kmp+dp)
- poj 2109
- dp day3/4-二维dp
- 关于思想无限的一点思考
- Arduino W5100 Yeelink PIN7控制
- hdu 6154
- 【学姐的胡策】训练8.18(KMP+dp)
- 第3篇 中国近现代史纲要(二)
- HDU
- 京东-链笔试题
- hdu6152 Friend-Graph
- [NOIP模拟赛]多边形
- oracleday19(复合类型 游标变量 pl/sql 进阶 条件分支语句 loop )
- AAAakka学习教程(十一) akka持久化
- zookeeper分布式协同流程图