其实这道题很简单,当时写的时候,思路有点把自己搞混了
这道题就是把走的每一次经过的点计算,走一步就计算一次与坐标原点的距离,然后进行与最大值进行比较,算一次比较一次,然后就可以了,最后输出最后的max的值就好了
using namespace std;
int main()
{
int a,b,x=0,y=0;
double max=0,n=0;
string s;
cin>>a;
while(a--)
{
cin>>b;max=0,n=0;
cin>>s;x=0;y=0;
for(int j=0;j<b;j++)
{
if(s[j]=='U') y++;
if(s[j]=='D') y--;
if(s[j]=='R') x++;
if(s[j]=='L') x--;
n=sqrt(x*x+y*y);
if(n>max) max=n;
}
printf("%.12lf\n",max);
}
}