標記一下能夠照亮的地方,然後開始統計一下就好了
[code]#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; bool vis[105]; int main() { int t; char str[105]; scanf("%d",&t); while(t--) { memset(vis,true,sizeof(vis)); int n; scanf("%d",&n); scanf("%s",str); for(int i=0;i<n;i++) { if(str[i]=='*') { vis[i]=false; if(i-1>=0) vis[i-1]=false; if(i+1<n) vis[i+1]=false; } } for(int i=0;i<n;i++) if(vis[i]==false) str[i]='*'; //printf("%s\n",str); int num=0; int sum=0; for(int i=0;i<n;i++) { if(str[i]=='.') num++; else { if(num!=0) sum++; num=0; } if(num==3) { sum++; num=0; } } if(num!=0) sum++; printf("%d\n",sum); } return 0; }