牛客训练三:处女座的约会(思维)

题目链接:传送门

思路:有点不理解,就是通过有限次数变为全部为0的字符串,

以三位数的字符串为例,有些字符串可能存在循环,100->010->101->010->001->100。

但是,随机的情况可能最后变为全部为0的字符串,所以“cnznb”。

正规题解:
每𝑛次操作看作一轮,每轮的操作都是从01串右边向左边对每个位置在原位依次进行操作。我们考虑这种做法,从右到左我们首先看到1就把他变成0,0的话让他随机,直到第一次出现有0变成了1的情况。如果没有出现这种情况那么这个串已经符合了要求,如果有0变成1发生,那么在这之后的1我们都继续变成1。这样一轮结束之后,这个01串所表示的二进制数的的大小一定是严格增加了的(因为虽然你可能把一些1变成了0但是有一个高位的0变成了1)而这个二进制数的大小是有限的,因此在有限步内一定可以把这串数变成全0串。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(void)
{
    char str[1010];
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s",str);
        printf("cnznb\n");
    }
    return 0;
}
View Code

 

posted @ 2019-01-26 22:22  麟阁  阅读(104)  评论(0编辑  收藏  举报