zoukankan      html  css  js  c++  java
  • 2019山东第十届acm省赛 c Wandering Robot 即zoj4115

    浙大出题 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;
    }
    

      

  • 相关阅读:
    12.22冲刺总结
    Android远程服务
    短信电话监听
    Android本地服务
    意图
    多线程下载
    异步HTTP请求
    提交数据到服务器
    通过HTTP访问网络资源
    观察者
  • 原文地址:https://www.cnblogs.com/clb123/p/10858889.html
Copyright © 2011-2022 走看看