其实这道题很简单,当时写的时候,思路有点把自己搞混了

这道题就是把走的每一次经过的点计算,走一步就计算一次与坐标原点的距离,然后进行与最大值进行比较,算一次比较一次,然后就可以了,最后输出最后的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);
    }
}