Hongcow Learns the Cyclic Shift CodeForces - 745A
2017-07-26 07:59
1096 查看
Hongcow is learning to spell! One day, his teacher gives him a word that he needs to learn to spell. Being a dutiful student, he immediately learns how to spell the word.
Hongcow has decided to try to make new words from this one. He starts by taking the word he just learned how to spell, and moves the last character of the word to the beginning of the word. He calls this a cyclic shift.
He can apply cyclic shift many times. For example, consecutively applying cyclic shift operation to the word "abracadabra" Hongcow will get words "aabracadabr", "raabracadab" and so on.
Hongcow is now wondering how many distinct words he can generate by doing the cyclic shift arbitrarily many times. The initial string is also counted.
Input
The first line of input will be a single string s (1 ≤ |s| ≤ 50), the word Hongcow initially learns how to spell. The string s consists only
of lowercase English letters ('a'–'z').
Output
Output a single integer equal to the number of distinct strings that Hongcow can obtain by applying the cyclic shift arbitrarily many times to the given string.
Example
Input
Output
Input
Output
Input
Output
Note
For the first sample, the strings Hongcow can generate are "abcd", "dabc", "cdab", and "bcda".
For the second sample, no matter how many times Hongcow does the cyclic shift, Hongcow can only generate "bbb".
For the third sample, the two strings Hongcow can generate are "yzyz" and "zyzy".
题意:给你个一个长度数n,然后接着一个字符串,规则是每次把最后一个放到最前面,求有多少个不同的数列,
分析:这是自己写的,比较菜鸡,我是先把所有可能出现的情况存在了一个数组中,然后遍历这个数组,比较每个项,如果有相同的,则总情况数减一。
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <queue>
#include <string.h>
using namespace std;
int main()
{
char a[100];
char c[100][100];
string aa,bb;
memset(c,0,sizeof(c));
gets(a);
int b=strlen(a);
int k=0;
for(int i=0; i<b; i++)
{
int t=a[0];
for(int j=0; j<b-1; j++)
{
a[j]=a[j+1];
}
a[b-1]=t;
sprintf(c[k++],"%s",a);
}
int sum=k;
int u=0;
for(int o=0; o<k-1; o++)
{
aa=c[o];
for(int j=o+1;j<k;j++)
{
bb=c[j];
if(aa==bb)
{
sum--;
break;
}
}
}
printf("%d\n",sum);
}
Hongcow has decided to try to make new words from this one. He starts by taking the word he just learned how to spell, and moves the last character of the word to the beginning of the word. He calls this a cyclic shift.
He can apply cyclic shift many times. For example, consecutively applying cyclic shift operation to the word "abracadabra" Hongcow will get words "aabracadabr", "raabracadab" and so on.
Hongcow is now wondering how many distinct words he can generate by doing the cyclic shift arbitrarily many times. The initial string is also counted.
Input
The first line of input will be a single string s (1 ≤ |s| ≤ 50), the word Hongcow initially learns how to spell. The string s consists only
of lowercase English letters ('a'–'z').
Output
Output a single integer equal to the number of distinct strings that Hongcow can obtain by applying the cyclic shift arbitrarily many times to the given string.
Example
Input
abcd
Output
4
Input
bbb
Output
1
Input
yzyz
Output
2
Note
For the first sample, the strings Hongcow can generate are "abcd", "dabc", "cdab", and "bcda".
For the second sample, no matter how many times Hongcow does the cyclic shift, Hongcow can only generate "bbb".
For the third sample, the two strings Hongcow can generate are "yzyz" and "zyzy".
题意:给你个一个长度数n,然后接着一个字符串,规则是每次把最后一个放到最前面,求有多少个不同的数列,
分析:这是自己写的,比较菜鸡,我是先把所有可能出现的情况存在了一个数组中,然后遍历这个数组,比较每个项,如果有相同的,则总情况数减一。
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <queue>
#include <string.h>
using namespace std;
int main()
{
char a[100];
char c[100][100];
string aa,bb;
memset(c,0,sizeof(c));
gets(a);
int b=strlen(a);
int k=0;
for(int i=0; i<b; i++)
{
int t=a[0];
for(int j=0; j<b-1; j++)
{
a[j]=a[j+1];
}
a[b-1]=t;
sprintf(c[k++],"%s",a);
}
int sum=k;
int u=0;
for(int o=0; o<k-1; o++)
{
aa=c[o];
for(int j=o+1;j<k;j++)
{
bb=c[j];
if(aa==bb)
{
sum--;
break;
}
}
}
printf("%d\n",sum);
}
相关文章推荐
- 745 A. Hongcow Learns the Cyclic Shift codeforces
- 【67.24%】【codeforces 745A】Hongcow Learns the Cyclic Shift
- Codeforces Round #385 (Div. 2) A. Hongcow Learns the Cyclic Shift 水题
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift #385
- Codeforces Round #385 (Div. 2)A.Hongcow Learns the Cyclic Shift【暴力】水题
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift
- A. Hongcow Learns the Cyclic Shift #385
- cf Hongcow Learns the Cyclic Shift
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift #385
- A. Hongcow Learns the Cyclic Shift #385
- Codeforces Round #385 (Div. 2)C. Hongcow Builds A Nation【并查集+贪心】好题~
- Codeforces Aim Tech Round 3 (Div.2 )C.Letters Cyclic Shift 【贪心】水题