首页 > 其他 > 详细

2019山东第十届acm省赛 c Wandering Robot 即zoj4115

时间:2019-05-13 21:43:53      阅读:529      评论:0      收藏:0      [点我收藏+]

浙大出题 zoj链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4115

签到题,太菜了,最后没签出来

思路:先遍历一次找出ans最大值,然后平移乘以k-1次,再遍历一次比较最大值

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5+10;
char s[N];
int main()
{
	int t;
	cin>>t;
	while(t--){
		ll x = 0,y = 0,n,k,ans = 0;
		cin>>n>>k;
		cin>>s;
		for(int i = 0; i < n; i++){
			if(s[i] == ‘R‘) x++;
			else if(s[i] == ‘L‘) x--;
			else if(s[i] == ‘U‘) y++;
			else if(s[i] == ‘D‘)y--;
			ans = ans>(abs(x)+abs(y))?ans:(abs(x)+abs(y));
		}
		x = (k-1)*x;
		y = (k-1)*y;
		for(int i = 0; i < n; i++){
			if(s[i] == ‘R‘) x++;
			else if(s[i] == ‘L‘) x--;
			else if(s[i] == ‘U‘) y++;
			else if(s[i] == ‘D‘)y--;
			ans = ans>(abs(x)+abs(y))?ans:(abs(x)+abs(y));
		}
		cout<<ans<<endl;
	}
	return 0;
}

  

2019山东第十届acm省赛 c Wandering Robot 即zoj4115

原文:https://www.cnblogs.com/clb123/p/10858889.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!