安置路灯
题目:
小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 }