题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4115
一开始看题解没看懂。。一直纠结于为啥乘以(k-1)就是k-1次
笨死了啊喂
然后我大哥给我举了一个0加上三个2的例子
代码如下
#include<iostream>
#include<cmath>
using namespace std;
const int maxn=1e5+10;
char a[maxn];
int main()
{
int n,k,i,t;
long long ans,x,y;
cin>>t;
while(t--)
{
ans=0;
x=0;
y=0;
cin>>n>>k;
cin>>a;
for(i=0;i<n;i++)
{
if(a[i]=='U')
y++;
if(a[i]=='D')
y--;
if(a[i]=='L')
x--;
if(a[i]=='R')
x++;
ans=max(ans,abs(x)+abs(y));
}
x=x*(k-1);
y=y*(k-1);
for(i=0;i<n;i++)
{
if(a[i]=='U')
y++;
if(a[i]=='D')
y--;
if(a[i]=='L')
x--;
if(a[i]=='R')
x++;
ans=max(ans,abs(x)+abs(y));
}
cout<<ans<<endl;
}
return 0;
}