侧边栏

牛客寒假算法基础集训营3 I.处女座的约会

链接:https://ac.nowcoder.com/acm/contest/329/I

思路:

作者:儒生雄才1
链接:https://ac.nowcoder.com/discuss/152781?type=101&order=0&pos=1&page=1
来源:牛客网

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

 

 1 #include<bits/stdc++.h>
 2 #define M 200000+5
 3 using namespace std;
 4 typedef long long ll;
 5 int a[M];
 6 int main()
 7 {
 8     int t;cin>>t;
 9     while(t--)
10     {
11         string s;cin>>s;
12         cout<<"cnznb"<<endl;
13     }
14     return 0;
15 }

备注:显然处女座很牛逼(题解原话)

posted @ 2019-01-26 20:21  晴人  阅读(180)  评论(0编辑  收藏  举报