牛客训练三:处女座的约会(思维)
题目链接:传送门
思路:有点不理解,就是通过有限次数变为全部为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; }