其实感觉这道题在D简单了(但我都没做到这一题,路径最多的方式只有一种,将所有的边都走一遍,从第一行开始,向右走到头,然后向左回来,向下一格,向右走到头,然后上下左重复直到第一列,如此重复直到最后一行,最后一步为向上到第一行第一列,注意输出的时候要判断一下0的情况

#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) ((x)&(-x))
typedef long long LL; void run_case() {
int n, m, k;
cin >> n >> m >> k;
vector<pair<int,string>> store, ans;
int cnt = ;
for(int i = ; i <= n; ++i) {
store.push_back(make_pair(m-, "R"));
cnt += store.back().first * store.back().second.size();
if(i == ) store.push_back(make_pair(m-, "L"));
else store.push_back(make_pair(m-, "UDL"));
cnt += store.back().first * store.back().second.size();
if(i == n) store.push_back(make_pair(n-, "U"));
else store.push_back(make_pair(, "D"));
cnt += store.back().first * store.back().second.size();
}
if(cnt < k) {
cout << "NO\n";
return;
}
while(cnt > k) {
string now = store.back().second;
int cur = store.back().first*now.size();
store.pop_back();
cnt -= cur;
if(cnt >= k) continue;
cur = k - cnt;
if(cur / now.size()) store.push_back(make_pair(cur/now.size(), now));
now.resize(cur%now.size());
if(now.size()) store.push_back(make_pair(, now));
cnt = k;
}
cout << "YES\n";
for(auto i : store) {
if(i.first) ans.push_back(i);
}
cout << ans.size() << "\n";
for(auto i : ans) {
cout << i.first << " " << i.second << "\n";
}
} int main() {
ios::sync_with_stdio(false), cin.tie();
//cout.setf(ios_base::showpoint);cout.precision(10);
//int t; cin >> t;
//while(t--)
run_case();
cout.flush();
return ;
}

Codeforces1301D的更多相关文章

  1. Codeforces1301D Time to Run

    (搬运一下部分官方题解) Description link 或者洛谷link 到时候就有中文翻译了,不过这个题机翻没毛病 Solution 首先这是一道模拟题-- 不要管题目中的循环移动的问题,直接按 ...

随机推荐

  1. vue卸载与安装+vue创建项目

    vue卸载 npm uninstall -g vue-cli npm install -g @vue/cli 和 npm install -g @vue/cli-init 命令安装新版本vue-cli ...

  2. 多进程manager共享

    使用manager在进程之间事项共享数据. 栗子: 主进程调用manager,创建一个字典d和一个列表l,启动十个子进程,每个子进程都向d和l中放数据 from multiprocessing imp ...

  3. Markdown Learning Notes

    Markdown 教程 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档. Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建. ...

  4. AngularJS Learning Notes

    AngularJS 简介 AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面. AngularJS 通过 指令 扩展了 HTML ...

  5. python调用scala或java包

    项目中用到python操作hdfs的问题,一般都是使用python的hdfs包,然而这个包初始化起来太麻烦,需要: from pyspark impport SparkConf, SparkConte ...

  6. Django框架之图书管理系统(一)

    图书管理系统共分为两篇博客进行讲解,该篇博客主要记录图书与出版社之间的关系(一对一),记录图书的增删查改操作 ============================================= ...

  7. 获取class对象的三种方法以及通过Class对象获取某个类中变量,方法,访问成员

    public class ReflexAndClass { public static void main(String[] args) throws Exception { /** * 获取Clas ...

  8. HDU1875 畅通工程再续

    相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全 ...

  9. 在Visual Studio 2017中,.NET(C#)通过Oracle.ManagedDataAccess来连接Oracle数据库

    C#如何通过Oracle.ManagedDataAccess来连接Oracle数据库 1.先创建一个项目,鼠标右击项目中的引用,再点击管理NuGet程序包(也可以先下载dll文件,再选添加引用),在搜 ...

  10. 杭电 2096 小明A+B

    小明A+B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...