UVA 455 暴力枚举
2017-07-08 16:48
393 查看
#include<stdio.h> #include<string.h> int main() { char s[80]; int T,i,j; scanf("%d",&T); while(T--) { bool found=false; scanf("%s",s); int len=strlen(s); for(i=1;i<=len/2;i++)//找因数,每个小于len/2的因数都可能是周期 { if(len%i==0) { for(j=i;j<=len;j++) if(s[j%i]!=s[j])break;//j%i是周期的下标,j是总串得下标 if(j==len){printf("%d\n",i);found=true;break;} } } if(!found)printf("%d\n",len); if(T)putchar('\n');//注意这里,不写得话会PE,很恶心 } return 0; }
找周期?abcabcabc得长度为9,因数为1,3,所以这两个数都可能是周期,依次尝试。如果都不对,那一定是9,本身
从最小的开始查找,一旦输出肯定就是最小的了。
注意下判断是否为正确周期得方式if(s[j%i]!=s[j])break;//j%i是周期的下标,j是总串得下标
if(s[j%i]!=s[j])break;//j%i是周期的下标,j是总串得下标
相关文章推荐
- Uva 201 Squares (暴力 + 枚举)
- UVA 1523 - Helicopter(暴力枚举)
- uva 11210 Chinese Mahjong(暴力枚举)
- UVa - 725 Division ( 暴力枚举 )
- UVA 1354 - Mobile Computing(暴力枚举子集)
- 暴力枚举- uva11464 - Even Parity
- UVA10976摸鱼的暴力枚举初步.....
- uva12113 暴力枚举+回溯递归
- uva 1508 - Equipment(暴力+枚举子集)
- UVA 592 逻辑之岛(暴力枚举)
- UVA 11464 Even Parity(暴力枚举)
- uva 455 Periodic Strings(暴力 判断周期串)
- UVA654- Ratio(暴力枚举)
- UVA 725 Divsion(暴力枚举)
- UVA10010(八方向暴力枚举)
- uva10892(暴力枚举)
- UVA 1262 Password 暴力枚举
- UVa1262 - Password(暴力枚举)
- Birthday Cake (uva10167简单暴力枚举)
- UVA -birthday cake(暴力枚举)