hdu_3746: Cyclic Nacklace
2024-10-20 16:20:26
给出一个字符串,你可以通过在首尾加入字符使其变成一个具有周期T(T>=2)的字符串,求所需加入的最少字符数。
所考察算法仍然是对next数组含义的理解
#include<cstdio>
#include<cstring> char S[];
int next[];
int len; void getNext()
{
int j=,k=-;
next[]=-;
while(j<len)
if(k==-||S[j]==S[k])
next[++j]=++k;
else
k=next[k];
}
void printNext()
{
for(int i=;i<len;i++)
printf("%3c",S[i]);
puts("");
for(int i=;i<=len;i++)
printf("%3d",next[i]);
puts("");
} int main()
{
int T;scanf("%d",&T);
while(T--)
{
scanf("%s",S);
len=strlen(S);
getNext();
// printNext();
int t=len-next[len]; //t即为最小周期
if(t==len)
printf("%d\n",len);
else if(len%t==)
puts("");
else
printf("%d\n",t-len%t);
}
}
最新文章
- Go语言实战 - revel框架教程之用户注册
- 【CentOS】虚拟机网络配置与远程登录
- 跨域iframe的高度自适应
- OGNL表示式使用和值栈
- elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具
- mysql聚集索引的优缺点
- docker学习系列(五):使用docker创建集成服务--lnmp
- Vue之九数据劫持实现MVVM的数据双向绑定
- [转]zookeeper集群 initLimit和syncLimit
- sitecore系统教程之体验编辑器
- 在Ubuntu 16.04 上编译安装OpenCV3.2.0(Cmake + python3 + OpenCV3)(转)
- OpAmp Voltage Follower/Regulator
- HDU 1033
- php查询某个字段指定值的所有条数
- Django 定制验证码
- hdu 1285 确定比赛名次 (拓扑)
- dom树改变监听
- UVA 11181 Probability|Given (离散概率)
- LeetCode:最长回文子串【5】
- CUDA编程时,线程块的处理方法