Code forces 887A Div.64解题报告

来源:互联网 发布:网络考试平台 编辑:程序博客网 时间:2024/06/05 09:03

题目链接:Div. 64

题意:在一个“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;}
原创粉丝点击