博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最小表示法
阅读量:6499 次
发布时间:2019-06-24

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

1、HDU 3374 String Problem(见《KMP专题》15)

2、hdu 2609 How many(见《KMP专题》16)

3、uva 1314   Hidden Password

  题意:给出一个字符串,求其最小表示法。

  思路:最小表示法模板

1 #include
2 #include
3 using namespace std; 4 int len; 5 const int maxn = 100010; 6 char Str[maxn]; 7 //求最小表示的起始坐标 8 int getMin() 9 {10 int i = 0, j = 1, k = 0;//i和j是两个进行比较的起始匹配位点,k是匹配长度11 while (i< len && j< len&&k
Str[(j + k) % len])//已经有{ Str[i]~Str[i + k - 1] == Str[j]~Str[j + k - 1]了,且有Str[i + k]>Str[j + k],自然我们选i~i + k中的任意一点都是比j~j + k的相应位置要差的,所以自然可以都略过18 i += k + 1;19 else20 j += k + 1;21 k = 0;22 if (i == j)//若滑动后i == j那么j++,保证错开23 j++;24 }25 }26 return min(i, j);//因为字典序大的位置被后移了,所以较小的位置就是答案27 }28 int main()29 {30 int t;31 scanf("%d", &t);32 while (t--)33 {34 scanf("%d%s", &len, Str);35 printf("%d\n", getMin());36 }37 return 0;38 }
View Code

 

转载于:https://www.cnblogs.com/ivan-count/p/7514322.html

你可能感兴趣的文章
第1章 游戏之乐——一摞烙饼的排序
查看>>
Windows录音API学习笔记(转)
查看>>
只有在北方的中国帝国能力享受免费的商业课程:财富规划法与愿景
查看>>
食谱API自由和开放接口-为了发展自己的健康厨房APP应用
查看>>
存储管理(两):openfiler它accounts
查看>>
[CareerCup] 3.2 Min Stack 最小栈
查看>>
汇编语言的应用
查看>>
当创业遇上O2O,新一批死亡名单,看完震惊了!
查看>>
一句话的设计模式(收藏)
查看>>
device platform 相应的表
查看>>
php des 加密解密实例
查看>>
【Mac】Mac键盘实现Home, End, Page UP, Page DOWN
查看>>
14、Cocos2dx 3.0三,找一个小游戏开发Scene and Layer:游戏梦想
查看>>
cocos2d-x3.x屏蔽遮罩层屏蔽触摸button
查看>>
实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求
查看>>
安德鲁斯----多媒体编程
查看>>
ZOJ 1203 Swordfish 旗鱼 最小生成树,Kruskal算法
查看>>
swift版的元组
查看>>
MYSQL查询今天昨天本周本月等的数据
查看>>
深度学习课程部分资料整理
查看>>