ACM-ICPC 2019 山东省省赛 C Wandering Robot
这个题额,我觉的是一道水题,思维题,需要考虑的情况比较多,题意一个机器人给一条指令,循环n遍,问此过程中离原点最远距离。
考虑最远距离可能出现的的情况。
每次循环之后距离至少为0;
1.假设他每一次循环都能回到原点,最远值肯定出现在第一重循环。
2.假设每次循环结束后所移动距离都小于,在某次循环中向某个方向移动的距离。
因为每次循环都会朝某一个方向但是,移动的量过于小,不如一个方向,此时,应考虑N次循环后的的位置,与第一次循环 之后的大小。
比较难理解上图:
综上所述,只用考虑第一次循环的最大值,跟最后一次循环的最大值谁大即可。
移动是有方向的,对于X,Y都有正负。
#include<iostream>
using namespace std;
long long jdz(long long int a);
const int maxn=1e5+5;
int main()
{
char ob[maxn];
int t;
long long dx,dy,max;
cin>>t;
while(t--)
{
int n,k;
dx=dy=max=0;
cin>>n>>k;
for(int i=0; i<n; i++)
{
cin>>ob[i];
if(ob[i]=='U') dy++;
if(ob[i]=='D') dy--;
if(ob[i]=='L') dx--;
if(ob[i]=='R') dx++;
if((jdz(dx)+jdz(dy))>max) max=jdz(dx)+jdz(dy);
//比赛时,紧张用了好几遍sqrt()难受;
//编译器出了问题,abs()不能用,蛋疼;
}
dx=(k-1)*dx;
dy=(k-1)*dy;
for(int i=0; i<n; i++)
{
if(ob[i]=='U') dy++;
if(ob[i]=='D') dy--;
if(ob[i]=='L') dx--;
if(ob[i]=='R') dx++;
if((jdz(dx)+jdz(dy))>max) max=jdz(dx)+jdz(dy);
}
cout<<max<<endl;
}
}
long long jdz(long long int a)
{
if(a>0) return a;
else return -a;
}
ACM-ICPC 2019 山东省省赛 C Wandering Robot的更多相关文章
- ICPC 2019 徐州网络赛
ICPC 2019 徐州网络赛 比赛时间:2019.9.7 比赛链接:The Preliminary Contest for ICPC Asia Xuzhou 2019 赛后的经验总结 // 比赛完才 ...
- ACM-ICPC 2019 山东省省赛总结
五题手快拿银,不然拿铜,甚至不拿,从结果上来看拿了铜牌对第一年的我们来说算好的,也不算太好. 从拿奖后的第一天,我想写这篇博客,但是我忍了下来,那时候被喜悦冲昏了头脑,当 冷静下来,我开始打算写这篇博 ...
- 2014 ACM/ICPC 鞍山赛区现场赛 D&I 解题报告
鞍山现场赛结束了呢-- 我们出的是D+E+I三道题-- 吾辈AC掉的是D和I两道,趁着还记得.先在这里写一写我写的两道水题D&I的解题报告吧^_^. D题的意思呢是说星云内有一堆排成一条直线的 ...
- Substrings 第37届ACM/ICPC 杭州赛区现场赛C题(hdu 4455)
http://acm.hdu.edu.cn/showproblem.php?pid=4455 https://icpcarchive.ecs.baylor.edu/index.php?option=c ...
- 2014 ACM/ICPC 鞍山赛区网络赛(清华命题)
为迎接10月17号清华命题的鞍山现场赛 杭电上的题目 Biconnected(hdu4997) 状态压缩DP Rotate(hdu4998) 相对任一点的旋转 Overt(hdu4999 ...
- hdu 4431 第37届ACM/ICPC 天津赛区现场赛A题 枚举
题意:就是给了13张牌.问增加哪些牌可以胡牌.m是数字,s是条,p是筒,c是数字 胡牌有以下几种情况: 1.一个对子 + 4组 3个相同的牌或者顺子. 只有m.s.p是可以构成顺子的.东西南北这样 ...
- hdu 4438 第37届ACM/ICPC 天津赛区现场赛H题
题意:Alice和Bob两个人去打猎,有两种(只)猎物老虎和狼: 杀死老虎得分x,狼得分y: 如果两个人都选择同样的猎物,则Alice得分的概率是p,则Bob得分的概率是(1-p): 但是Alice事 ...
- zoj 3659 第37届ACM/ICPC 长春赛区现场赛E题 (并查集)
题意:给出一棵树,找出一个点,求出所有点到这个点的权值和最大,权值为路径上所有边权的最小值. 用神奇的并查集,把路按照权值从大到小排序,然后用类似Kruskal的方法不断的加入边. 对于要加入的一条路 ...
- 2017 ACM/ICPC 南宁区 网络赛 Overlapping Rectangles
2017-09-24 20:11:21 writer:pprp 找到的大神的代码,直接过了 采用了扫描线+线段树的算法,先码了,作为模板也不错啊 题目链接:https://nanti.jisuanke ...
随机推荐
- 家庭记账本app进度之关于单选按钮的相关操作(添加点击按钮事件以及点击单选更改事件)
这次主要是通过代码实现了android中的相关单选按钮的相关操作,之后再最下面有一个按钮,当点击这个按钮的时候,会获取当上面的相关信息,之后再下方会进行相应的文字显示,获取的信息不同显示的信息也不会一 ...
- MTK Android Driver :Battery电池曲线
MTK Android Driver :battery电池曲线 1.配置文件位置: CUSTOM_KERNEL_BATTERY= battery mediatek\custom\\kernel\bat ...
- 中阶d03 JDBC 使用
1.首先在数据库中创建表 2.安装mysql驱动 java开发环境中导入jdbc连接mysql的jar包 mysql-connector-java-5.1.7-bin.jar 下载地址:https:/ ...
- bootstrapTest
<!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8&q ...
- 14-jmeter分布式环境
1.分布式概念: jmeter做性能时,会消耗本地机器资源 本机无法没有限制的创建运行线程(一般500线程就差不多会报错) 一般这时候会用到分布式的环境 2.环境: 前提条件:环境一致(有时候可以直接 ...
- java nio消息半包、粘包解决方案
问题背景 NIO是面向缓冲区进行通信的,不是面向流的.我们都知道,既然是缓冲区,那它一定存在一个固定大小.这样一来通常会遇到两个问题: 消息粘包:当缓冲区足够大,由于网络不稳定种种原因,可能会有多条消 ...
- 亲测可以使用的Axmath和MathPix插入word公式
Axmath破解版链接 链接:https://pan.baidu.com/s/1Phak8mc3msKAMQ6H_5EN5g 提取码:glti MathPixTool和Axmath共同使用向word插 ...
- s3fs-fuse 把 s3-like 对象存储挂载到本地
s3fs-fuse 是一个采用 c++
- 新建Django项目示例--图书管理系统
知识点: Django 1. 安装 1. Django版本 1.11.xx 2. 安装方式 1. 命令行 --> Python环境(双版本,pip的使用) 2. PyCharm安装 2. 创建D ...
- 小白必看,Python 各种下划线都是啥意思_、_xx、xx_、__xx、__xx__、_classname_
我们在定义一些变量或者方法的时候,常常会用到下划线,在 Python 中,下划线可是很有用处的哟,比如变量,有些是一个下划线开头的(_xx),有些是两个下划线开头的(__xx),有些是在名称的结尾添加 ...