博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-3746-KMP理解失配
阅读量:5089 次
发布时间:2019-06-13

本文共 802 字,大约阅读时间需要 2 分钟。

这个有点意思,要理解失配数组

题意是要计算出需要构造成循环节相连的最小个数

利用失配构造函数求出单个循环节,然后计算出需要的加上的珠子个数

 

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 13 using namespace std;14 15 int T;16 char P[100100];17 18 int solve(char *P)19 {20 int m = (int)strlen(P);21 int f[m+10];22 memset(f,-1,sizeof f);23 int i = 0,j = -1;24 while(i != m)25 {26 if(j == -1||P[i] == P[j])27 f[++i] = ++j;28 else 29 j = f[j];30 }31 int k = m-f[m];32 return (k != m && f[m]%k==0) ? 0 : k-f[m]%k;33 }34 35 int main()36 {37 scanf("%d",&T);38 while(T--)39 {40 scanf("%s",P);41 printf("%d\n",solve(P));42 }43 }

 

转载于:https://www.cnblogs.com/helica/p/4730470.html

你可能感兴趣的文章
Cookie和Session和Cache(转)
查看>>
关于网站登录后的页面操作所携带的不同cookie值
查看>>
CookieJar转换成不同的数据格式
查看>>
浅谈python之利用pandas和openpyxl读取excel数据
查看>>
冒泡排序和sort,sorted排序函数
查看>>
configparser读取配置文件时的相对路径问题
查看>>
关于Git和GitHub的一些知识
查看>>
python中可变与不可变类型的全局变量
查看>>
浅谈python面向对象编程和面向过程编程的区别
查看>>
十五夜望月寄杜郎中
查看>>
【转】单元测试、接口测试、功能测试的区别
查看>>
浅谈python中selenium库调动webdriver驱动浏览器的实现原理
查看>>
关于AttributeError: 'NoneType' object has no attribute 'send_keys'
查看>>
linux上安装jenkins过程
查看>>
jenkins添加节点
查看>>
通过华为云搭建一个属于自己的小网站
查看>>
windows和linux下查看java安装路径
查看>>
浅谈动态规划
查看>>
微信小程序中使用text-indent实现首行缩进
查看>>
支付宝小程序input的小坑
查看>>