摘要: #include#include#include#define maxn 10struct trie{ trie *next[10]; int sum; int flag;};trie *root;char way[5010][10];void init(){ root=(t... 阅读全文
posted @ 2015-08-12 16:26 sweat123 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 给你一堆字符串,然后再给你几个查询,前面那些字符串中有多少个包含了这个串。所以可以把开始inset()的字符遍历一遍,同时可能出现该字符串在某个字符串中有多次出现,所以还要用flag标记,来区分不同的串。#include#include#includestruct trie{ int flag... 阅读全文
posted @ 2015-08-12 16:05 sweat123 阅读(157) 评论(0) 推荐(0) 编辑
摘要: #include#include#define maxn 10010char s[maxn];int getmin(){ int i,j,k,len=strlen(s); i=0; j=1; k=0; while(i0) i+=k+1; ... 阅读全文
posted @ 2015-08-12 15:05 sweat123 阅读(249) 评论(0) 推荐(0) 编辑
摘要: #include#include#define maxn 1000010int next[maxn],s[maxn],p[maxn];int n,m;void getnext(){ int j,k; k=-1; j=0; next[0]=-1; while(j<m) ... 阅读全文
posted @ 2015-08-12 10:11 sweat123 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 这题要求的是字符串左移时字典序最小和最大的第几次出现,并求出现次数。考虑一会可以发现,出现次数和循环节是有关系的。出现了几次,就是循环了几次,如果循环节是他本身,也就是无循环,那这个字符串不管怎么移,都只有一种情况。关键就是求第几次出现,也就是最大最小的表示。顺便学习了一下。#include#inc... 阅读全文
posted @ 2015-08-12 09:45 sweat123 阅读(466) 评论(0) 推荐(0) 编辑
摘要: http://wenku.baidu.com/link?url=1hkGv3wY1CFD17E5RsyfFUCSPBmEJHfyaJZHLXIPnp1wHG54OyMGgLhVCwdt7YuEGENhnGyH7AJeC85giBGXrZg6dW6fdIU2-n7jQiLY9XG循环字符串的最小表示法... 阅读全文
posted @ 2015-08-12 09:34 sweat123 阅读(632) 评论(0) 推荐(0) 编辑