HDU 3746 Cyclic Nacklace kmp处理字符串
来源:互联网 发布:php web 文件上传 编辑:程序博客网 时间:2024/06/06 02:50
题意大致是说给你不同颜色的串珠,颜色用字母表示,之后让他形成一个环,循环至少两次,问至少需要加入几个串珠使之成立。
AC代码:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int MAX=1e5+10;int Next[MAX];int N,ans;char str[MAX] ;int str_len;void kmp_next(char str[],int Next[]){Next[0]=0;for(int i=1;i<str_len;i++){int k=Next[i-1];while(k!=0&&str[i]!=str[k]) k=Next[k-1];if(str[i]==str[k]) Next[i]=k+1;else Next[i]=0;}}int main(){ scanf("%d",&N);while(N--){memset(Next,0,sizeof(Next));scanf("%s",str);str_len=strlen(str);kmp_next(str,Next);int t=str_len-Next[str_len-1];//循环的长度if(Next[str_len-1]%t==0&&Next[str_len-1]!=0) ans=0;//例如aaa 可以多次循环else ans=t-(Next[str_len-1]%t);//例如abca 取余就是记录了后面循环的个数这里只有一个循环字母aprintf("%d\n",ans);}return 0;}点击打开题目链接
阅读全文
1 0
- HDU 3746 Cyclic Nacklace kmp处理字符串
- HDU 3746 Cyclic Nacklace kmp处理字符串周期问题
- HDU 3746(Cyclic Nacklace)字符串匹配-KMP
- KMP hdu-3746-Cyclic Nacklace
- HDU 3746 Cyclic Nacklace(KMP)
- HDU 3746 Cyclic Nacklace KMP
- HDU 3746 Cyclic Nacklace KMP
- HDU 3746 Cyclic Nacklace KMP
- hdu 3746 Cyclic Nacklace(KMP)
- HDU 3746 Cyclic Nacklace KMP
- hdu 3746 Cyclic Nacklace(KMP)
- HDU 3746 Cyclic Nacklace / KMP
- HDU--3746--Cyclic Nacklace【KMP】
- hdu-3746 Cyclic Nacklace 【kmp】
- hdu 3746 Cyclic Nacklace ( kmp )
- HDU-3746 Cyclic Nacklace (kmp)
- [hdu 3746] Cyclic Nacklace [kmp]
- hdu 3746 Cyclic Nacklace kmp
- 深度学习:卷积神经网络CNN变体
- 找工作时如何快速了解一家公司?
- 软件开发工具一二章总结
- nodejs更改项目端口号
- 搜集的软件研发面试题 持续增加
- HDU 3746 Cyclic Nacklace kmp处理字符串
- CharMatcher
- Java加密解密等操作的工具类
- JavaScript-定时器的使用之延时提示框
- Data Binding,View基本属性赋值
- 日处理20亿数据,实时用户行为服务系统架构实践
- 关于vs老版本转换新版本的一些问题
- 【Go】 Cron定时任务用法
- CaseFormat