The Way to Home CodeForces - 910A

4个月前做的一道题,当时不知道为什么,写了一个bfs,直接就超时了。

现在再看这个题目,发现就是一个简单的贪心,每次走最远即可。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int N=110;
 4 char ss[N];
 5 vector<int>pos;
 6 int main()
 7 {
 8     int n,d;
 9     while(scanf("%d%d",&n,&d)!=EOF)
10     {
11         scanf("%s",ss+1);
12         pos.clear();
13         for(int i=1;i<=n;i++)
14         {
15             if(ss[i]=='1')
16                 pos.push_back(i);
17         }
18         int p=1,ans=0;
19         bool f=0;
20         for(int i=1;i<pos.size();i++)
21         {
22             f=0;
23             while(pos[i]-p<=d)
24             {
25                 i++;
26                 f=1;
27             }
28             if(!f)
29                 break;
30             i--;
31             p=pos[i];
32             ans++;
33         }
34         if(!f)
35             printf("-1\n");
36         else
37             printf("%d\n",ans);
38     }
39     return 0;
40 }
View Code

 

posted @ 2019-12-07 21:10  xzx9  阅读(273)  评论(0编辑  收藏  举报