2 solutions
-
1
样例: WBWWBB 在W是擦除是没用的,所以要检测到B才擦除 擦除后要统计与后移
所以程序:
#include<iostream> using namespace std; int main() { int t; cin>>t; for(int ti=0;ti<t;ti++) { int n,k; cin>>n>>k; char s[n]; int at=0; for(int i=0;i<n;i++) { cin>>s[i];//输入 } for(int i=0;i<n;i++) { if(s[i]=='B')//只有第一个发现的B才擦除 { at++; i+=k;//后移擦除范围 i-=1;//减一 ! } } cout<<at<<endl;//输出 } return 0;//完结散花! }
-
-1
#include<bits/stdc++.h> using namespace std; char a[2000001]; int n,k; bool check(int y){ for(int i=y;i<=n;i++){ if(a[i]=='B'){ return false; } } return true; } int main(){ int t; cin>>t; for(int i=1;i<=t;i++){ cin>>n>>k; int m=0; for(int i=1;i<=n;i++){ cin>>a[i]; } if(check(1)){ cout<<0; } else{ int s=1; while(1){ if(a[s]=='B'){ for(int i=s;i<s+k;i++){ a[i]='W'; } m++; if(check(s+k)){ break; } } s++; } cout<<m<<endl; } } }
- 1
Information
- ID
- 907
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 53
- Accepted
- 22
- Uploaded By