2 solutions

  • 1
    @ 2023-10-28 13:25:34
    样例:
    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
      @ 2024-3-7 13:32:22
      #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