栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

题面链接

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

题面

思路

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

代码
#include
using namespace std;
//----------------�Զ��岿��----------------
#define ll long long
#define mod 1000000007
#define endl "n"
#define PII pair

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("%lfn",ans);
	}
	
	
	
	
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723596.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号