hdu 3746 Cyclic Nacklace
2024-10-18 02:42:30
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746
思路:KMP中Next数组的应用,求出最小的循环节,题目的意思是只能在字符串的后面上添加新的字符凑成两个循环节
用Next数组来求最小循环节的方法见这:http://www.cnblogs.com/wuyiqi/archive/2012/01/06/2314078.html
#include<string.h>
#include<stdio.h>
#include<iostream>
#define N 1000005 using namespace std; int Next[N],tlen;
char T[N]; void getNext()
{
int j, k;
j = ; k = -; Next[] = -;
while(j < tlen)
{
if(k == - || T[j] == T[k])
Next[++j] = ++k;
else
k = Next[k];
}
} int main()
{
int cas,min;
scanf("%d",&cas);
while(cas--)
{
scanf("%s",T);
tlen=strlen(T);
getNext();
min=tlen-Next[tlen];
if(min==tlen)
printf("%d\n",tlen);
else if(tlen%min==)
printf("0\n");
else
printf("%d\n",min-tlen%min);
}
return ;
}
最新文章
- supervisor 安装、配置、常用命令
- Form 详细属性--2016年12月4日
- ARM-ContexM3/4组优先级和子优先级抢占规则
- S2SH CRUD 整合
- rabbitMQ集群部署以及集群之间同步
- 腾讯优测-优社区干货精选 | android开发在路上:少去踩坑,多走捷径(下)
- CentOS搭建LAMP环境
- 【HDOJ】1043 Eight
- POJ_3009——冰球,IDS迭代加深搜索
- [目录][Leetcode] Leetcode 题解索引
- Linux查看用户数、登录用户
- 1--OC -- HelloWorld
- PAT (Advanced Level) 1014. Waiting in Line (30)
- Spring学习(4)---Bean基础
- Java中的类变量、实例变量、类方法、实例方法的区别
- Oracle创建新undo表空间最佳实践(包含段检查)
- 【新特性】JDK1.8
- google的protobuf简单介绍
- [译]ElasticSearch vs. Solr
- HashMap按照value排序的实现