0
点赞
收藏
分享

微信扫一扫

牛牛学走路(模拟+暴力)

我是芄兰 2022-01-31 阅读 59

题面链接

https://ac.nowcoder.com/acm/contest/23106/L

思路

四个字母分别表示的四个方向,我们只需要按照需求模拟这个字符串即可,然后在每一步过程中更新一下最远的距离即可,最后输出

代码

#include<bits/stdc++.h>
using namespace std;
//----------------�Զ��岿��----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>

int dx[4]={0,-1,0,1},dy[4]={-1,0,1,0};

ll ksm(ll a,ll b) {
	ll ans = 1;
	for(;b;b>>=1LL) {
		if(b & 1) ans = ans * a % mod;
		a = a * a % mod;
	}
	return ans;
}

ll lowbit(ll x){return -x & x;}

const int N = 2e6+10;
//----------------�Զ��岿��----------------
int n,m,q,a[N];
int x,y;
int main()
{
	// std::ios::sync_with_stdio(false);
	// std::cin.tie(nullptr);
	// std::cout.tie(nullptr);
	string s;
	int t;
	cin>>t;
	while(t--){
	int len;
	cin>>len>>s;
	x = y = 0;
	double ans = 0;
	for(int i = 0;i < len; ++i) {
		if(s[i] == 'U'){
			y++;
		}
		else if(s[i] == 'D'){
			y--;
		}
		else if(s[i] == 'L'){
			x--;
		}
		else if(s[i] == 'R'){
			x++;
		}
		ans = max(ans,sqrt(x * x * 1.0 + y * y * 1.0));
	}
	printf("%lf\n",ans);
	}
	
	
	
	
	return 0;
}

举报

相关推荐

0 条评论