题意:给了一个序列,当前在第m个位置,你可以修改这个序列的字符,问最少修改几个,可以走到1或者n。
思路:签到题。直接从m位置往左遍历,把R都改成L,从m位置往右遍历,把L都改成R,取个min
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5;
const ll mod=1e9+7;
int main(){
int T;while(cin>>T){
while(T--){
int n,m;cin>>n>>m;
string a;cin>>a;
int l=0;
for(int i=m-1;i;i--){
l+=a[i]=='R';
}
int r=0;
for(int i=m-1;i<n-1;i++){
r+=a[i]=='L';
}
cout<<min(l,r)<<endl;
}
}
return 0;
}
1159

被折叠的 条评论
为什么被折叠?



