Codeforces Round #696 (Div. 2) A. Puzzle From the Future
https://codeforces.com/contest/1474/problem/A
第一次写题解不好见谅
这题想找最大的a,那首先就要保障a的长度最长,所以首位一定为1
要想保证长度最长那d就不能出现有连续的0,1或2
所以在找a时,先定义a[0]=1然后依次往后(要尽可能的为1)
如果1+b[j]=a[j-1]+b[j-1],那么a[j]就只能为0,否则就为1。
最后AC代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,t,j,i,w,a[1000];
char s[1000];
scanf("%d",&n);
while(n--)
{
scanf("%d%s",&t,&s);
a[0]=1;
printf("%d",a[0]);
for(j=1;j<t;j++)
{
w=1+s[j]-'0';//s[j]-‘0’为获取s[j]的数字;
if(w==a[j-1]+s[j-1]-'0') a[j]=0;
else a[j]=1;
printf("%d",a[j]);
}
printf("\n");
}
}