安置路灯

题目:

小Q正在给一条长度为n的道路设计路灯安置方案。 
为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用'.'表示, 不需要照亮的障碍物格子用'X'表示。 
小Q现在要在道路上设置一些路灯, 对于安置在pos位置的路灯, 这盏路灯可以照亮pos - 1, pos, pos + 1这三个位置。 
小Q希望能安置尽量少的路灯照亮所有'.'区域, 希望你能帮他计算一下最少需要多少盏路灯。

输入描述:

输入的第一行包含一个正整数t, 表示测试用例数 
接下来每两行一个测试数据, 第一行一个正整数n,表示道路的长度。 
第二行一个字符串s表示道路的构造,只包含'.''X'

输出描述:

对于每个测试用例, 输出一个正整数表示最少需要多少盏路灯。

样例:

in:
2
3
.X.
11
...XX....XX

out:
1
3

 

贪心,每有一个‘.’则安置一个路灯再向后移两位。

 

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 char a[1010];
 5 
 6 int main(){
 7     int t,n;
 8     cin>>t;
 9     while(t--){
10         cin>>n;
11         for(int i=0;i<n;i++){
12             cin>>a[i];
13         }
14         int sum=0;
15         for(int i=0;i<n;i++){
16             if(a[i]=='.'){
17                 sum++;
18                 i+=2;
19             }
20         }
21         cout<<sum<<endl;
22     }
23     return 0;
24 }

 

posted @ 2018-04-04 12:09  Kiven#5197  阅读(944)  评论(0编辑  收藏  举报