题意:在一个“01”串中,删除若干个数,剩下的串中能否出现64的二进制(1000000),有则输出“yes”,没有则输出“no”;
分析:由于没有规定删除数的个数,所以我们只要判断第一个“1”后面能否有6个“0”即可,因为第一个“1”后面没有6个”0“的话则之后也不会出现。
数据量100,纯暴力可解
代码实现:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<string>
#include<map>
using namespace std;
typedef long long LL;
const int MAXN=1e6+10;
char str[MAXN];
int main()
{
scanf("%s",str);
int l=strlen(str);
int cnt=0,pos;
for(int i=0;i<l;i++)
if(str[i]=='1')
{
pos=i;
break;
}
for(int i=pos+1;i<l;i++)
{
if(str[i]=='0') cnt++;
if(cnt==6) break;
}
if(cnt==6) puts("yes");
else puts("no");
return 0;
}