Codeforces1301D Time to Run
(搬运一下部分官方题解)
Description
或者洛谷link
到时候就有中文翻译了,不过这个题机翻没毛病
Solution
首先这是一道模拟题……
不要管题目中的循环移动的问题,直接按照怎么着走能走最长
其实比较直观的就是一直走到右边,然后向下,再到左边……
到最低行最后一个的时候就原路返回(我比赛的时候真么想的)
但是我们就忽略掉了纵着来的路径
所以我们在非首行中应该把上下的路径补掉
就是把 \((L/R)\) 改成 \(UD(L/R)\)
然后还得每一行进行原路返回(就是每一次都从最左边进入下一行)
如果所有的这些路径个数加起来都不够,就 \(puts("NO")\)
这个题细节还是比较多……
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long
namespace yspm{
inline int read()
{
int res=0,f=1; char k;
while(!isdigit(k=getchar())) if(k=='-') f=-1;
while(isdigit(k)) res=res*10+k-'0',k=getchar();
return res*f;
}
const int N=1e5+10;
vector<pair<int,string> > vec1,vec2;
int n,m,k,sum,now; string tmp;
inline void fix(vector<pair<int,string> >&vec)
{
vec2=vec; vec.clear(); int sz=vec2.size();
for(int i=0;i<sz;++i) if(vec2[i].first) vec.push_back(vec2[i]); return ;
}
signed main()
{
n=read(); m=read(); k=read();
for(int i=1;i<=n;++i)
{
vec1.push_back(make_pair(m-1,"R"));
if(i==1) vec1.push_back(make_pair(m-1,"L"));
else vec1.push_back(make_pair(m-1,"UDL"));
if(i==n) vec1.push_back(make_pair(n-1,"U"));
else vec1.push_back(make_pair(1,"D"));
}
int sz=vec1.size(); for(int i=0;i<sz;++i){sum+=vec1[i].first*vec1[i].second.size();}
if(sum<k) return puts("NO"),0;
while(sum>k)
{
tmp=vec1.back().second; now=vec1.back().first*vec1.back().second.size();
vec1.pop_back(); sum-=now;
if(sum>=k) continue; now=k-sum;
if(now/tmp.size()>0) vec1.push_back(make_pair(now/tmp.size(),tmp));
tmp.resize(now%tmp.size());
if(tmp.size()>0) vec1.push_back(make_pair(1,tmp));
sum=k;
} puts("YES"); fix(vec1);
sz=vec1.size(); printf("%lld\n",sz);
for(int i=0;i<sz;++i) printf("%lld %s\n",vec1[i].first,vec1[i].second.c_str());
return 0;
}
}
signed main(){return yspm::main();}
Codeforces1301D Time to Run的更多相关文章
- can't run roscore 并且 sudo 指令返回 unable to resolve host
I'm using ubuntu14 LTS. Problems: 1. When run roscore, got a mistake and an advice to ping the local ...
- DotNet Run 命令介绍
前言 本篇主要介绍 asp.net core 中,使用 dotnet tools 运行 dotnet run 之后的系统执行过程. 如果你觉得对你有帮助的话,不妨点个[推荐]. 目录 dotnet r ...
- 布里斯班Twilight Bay Run半程马拉松
自从8月3日跑了半马以后,又一鼓作气报了11月份的西昌马拉松.与第一次马拉松的只求完赛目标不同,第二次当然想取得一个更好的成绩.所以8月份练的比较猛,基本上是练2.3天休息一天,周么还要拉个长于21公 ...
- SVN:Previous operation has not finished; run 'cleanup' if it was interrupted
异常处理汇总-开发工具 http://www.cnblogs.com/dunitian/p/4522988.html cleanup failed to process the following ...
- linux 环境下运行STS时 出现must be available in order to run STS
linux 环境下运行ECLIPSE时 出现 “ A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avai ...
- 0040 Java学习笔记-多线程-线程run()方法中的异常
run()与异常 不管是Threade还是Runnable的run()方法都没有定义抛出异常,也就是说一条线程内部发生的checked异常,必须也只能在内部用try-catch处理掉,不能往外抛,因为 ...
- jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the install tool.
jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the ...
- .NET跨平台之旅:探秘 dotnet run 如何运行 .NET Core 应用程序
自从用 dotnet run 成功运行第一个 "Hello world" .NET Core 应用程序后,一直有个好奇心:dotnet run 究竟是如何运行一个 .NET Cor ...
- 【svn】在提交文件是报错:previous operation has not finished;run 'cleanup' if it was interrupted
1.svn在提交文件是报错:previous operation has not finished;run 'cleanup' if it was interrupted2.原因,工作队列被占用,只需 ...
随机推荐
- you-get使用
1.pip install you-get 2.如果出错 查看错误bug you-get http://www.iqiyi.com/v_19rrnqxz7k.html#vfrm=2-4-0-1 ...
- Python的 5 种高级用法,效率提升没毛病!
任何编程语言的高级特征通常都是通过大量的使用经验才发现的.比如你在编写一个复杂的项目,并在 stackoverflow 上寻找某个问题的答案.然后你突然发现了一个非常优雅的解决方案,它使用了你从不知道 ...
- Bugku web(1—35)
1.web2 打开网页: 哈哈,其实按下F12你就会发现flag. 2.计算器 打开网页,只是让你输入计算结果,但是发现只能输入一个数字,这时按下F12,修改一下参数,使之可以输入多个数字,修改后输入 ...
- idea 使用技巧 - [copy reference]
选择项目中某个函数名, 右键可以看到 copy reference, 点击完成复制symbol, 分享给别人. shift + shift 打开打开一个对话框, 把分享的symbol粘贴上去, 可以跳 ...
- HDU 3018 欧拉回路
HDU - 3018 Ant Country consist of N towns.There are M roads connecting the towns. Ant Tony,together ...
- css伪元素::before与::after使用基础示例
1.指定文本前后添加内容 <div class="box">test</div> .box::before{ content: 'before'; marg ...
- Java 面向对象概述原理: 多态、Object类,转型(8)
Java 面向对象概述原理: 多态.Object类,转型(8) http://docs.oracle.com/javase/tutorial/java/IandI/override.html Java ...
- Python 中如何自动导入缺失的库?
在写 Python 项目的时候,我们可能经常会遇到导入模块失败的错误:ImportError: No module named 'xxx'或者ModuleNotFoundError: No modul ...
- MacOS最佳思维导图推荐-MindNode 7
思维导图软件哪个比较好呢?MindNode for mac下载一款功能简单,界面简洁,不用看教程都会用的思维导图软件.mindnode 7 mac版可随时随地记录自己的想法,让您从灵感入手,将奇思妙想 ...
- 65)STL中string的知识
1)代码展示: string是一个类,只不过封装了 char* 而且还封装了 很多的字符串操作函数 2)string类的初始化: string的构造函数 ² 默认构造函数: string(); ...