Educational Codeforces Round 86 (Rated for Div. 2) 比赛人数15356
[codeforces 1342B] Binary Period 周期要么是1要么是2
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址https://codeforces.com/contest/1342/problem/B
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
B - Binary Period | GNU C++17 | Accepted | 31 ms | 0 KB |
枚举了一堆数据,发现,最终字串s的周期,要么是1,要么是2
若t的周期是1,可直接作为s字串输出
否则,以101010......,或010101...的形式进行输出
具体详见代码
AC代码如下
#include <stdio.h>
#include <string.h>
char a[105],b[210];
int main(){
int t,i,len,flag,k,cnt;
scanf("%d",&t);
while(t--){
scanf("%s",a+1);
len=strlen(a+1);
flag=0;
for(i=1;i+1<=len;i++)
if(a[i]!=a[i+1]){flag=1;break;}
if(flag==0)printf("%s\n",a+1);
else{
cnt=0;
printf("%c",a[1]),cnt++;
for(i=2;i<=len;i++){
if(a[i]==a[i-1])printf("%d",!(a[i]-'0')),cnt++;
printf("%c",a[i]),cnt++;
}
if(cnt%2)printf("%d",!(a[len]-'0'));//若cnt是奇数,还需补一位。
printf("\n");
}
}
return 0;
}