杭电2609
来源:互联网 发布:删除cadbak文件软件 编辑:程序博客网 时间:2024/05/18 02:50
#include <iostream>#include <cstdio>#include <cstring>#include <map>using namespace std;string a;int N;map<string,int>flag;int main(){int i,j,k,m,n,len,num;string s;while(~scanf("%d",&N)){num=0;flag.clear();for(i=1;i<=N;i++){s="";//置空串 cin>>a;j=0;//j为记录最小串的起始位置 k=1;//方便比较所以设置的变量 len=a.size();while(k<len)//循环结束标志 {if(a[j]<a[k]) k++;else if(a[j]>a[k]){j=k;k=j+1;}else {int sum;m=j;n=k;for(sum=1;sum<len;sum++)//循环次数 {m%=len;//取余很重要,等于长度时再从第一个位置开始比较 n%=len;if(a[m]<a[n]){k++;break;}else if(a[m]>a[n]){j=k;k++;break;}m++;n++;}if(sum==len)//千万不要忘了始终相等的这种情况也要处理 {k++;}}}int p;for(p=1;p<=len;p++)//从j位置开始截取子串 {s=s+a.substr(j,1) ;j++;j%=len;}if(flag[s]!=1)//前面没有该串,则num++,并将该串标记 {num++;flag[s]=1;}}cout<<num<<endl;}return 0;}
0 0
- 杭电2609
- 杭电2609
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- 杭电ACM2955
- 杭电ACM3198
- Retrofit一个爽到HI的网络加载库
- 《岁末之歌》
- MySQL学习(一)
- (第3讲)Java如何获得用户在控制台输入的东西、如何从文件中获得数据
- iOS基础框架
- 杭电2609
- 产生n位元的所有格雷码。
- 第五周项目1——(1)三角形类雏形
- MATLAB/c++混合编程
- wget完成ftp链接下载
- finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?
- hdu4496 并查集
- 点击文本可选中选择框
- 1007 of greedy strategy*