标题引流,致歉。
#include <bits/stdc++.h>
#define int long long
using namespace std;
char c[400005];
int a[200005],b[200005];
signed main(){
int t;
cin>>t;
while(t--){
int n,m;
cin>>n>>m;
cin>>c;
memset(a,0x3f,sizeof a);
memset(b,0,sizeof b);
int p=1,q=1;
a[1]=1;
b[1]=1;
int cntd=0,cntr=0;
for(int i=0;i<n+m-2;i++){
if(c[i]=='D') cntd++;
if(c[i]=='R') cntr++;
}
if(cntd>n-1||cntr>m-1){
cout<<0<<endl;
continue;
}
for(int i=0;i<n+m-2;i++){
if(c[i]=='D'){
q++;
}else if(c[i]=='R'){
p++;
}else{
if(cntd<m) p++,cntd++;
else q++;
}
b[p]=max(b[p],q);
}
p=1,q=1;
for(int i=0;i<n+m-2;i++){
if(c[i]=='D'){
q++;
}else if(c[i]=='R'){
p++;
}else{
if(cntr<n) q++,cntr++;
else p++;
}
a[p]=min(a[p],q);
}
int ans=0;
for(int i=1;i<=m;i++){
if(a[i]<=b[i]){
ans+=b[i]-a[i]+1;
}
}
cout<<ans<<endl;
}
}