CF1301D Time to Run 题解

思维题。

分析

把一个格子视作一个点,每个点的度数都是偶数,所以这是一张欧拉图。而需要走遍整个方格图,可以证明只要 \(k\) 不超过 \(4nm-2n-2m\) 就一定有解。

很明显存在很多种方案,这里我用的方案是:从左上角出发,向右走 \(m-1\) 步到头,再向左走 \(m-1\) 步回来,向下走一步。重复以上步骤,直到走到左下角。然后向右走一步,向上走 \(n-1\) 步到头,向下走 \(n-1\) 步回来。重复上面步骤,直到走到右下角。这时候你会发现你已经走完了这张网格图里的所有边。注意在走的过程中如果步数用完了中断输出答案即可。

代码

#include <bits/stdc++.h>
using namespace std;
namespace Raiden
{
int const N = 3005;
int n, m, k, num[N], cnt;
char ans[N][5];
signed work()
{
cin >> n >> m >> k;
if (k > 4 * n * m - 2 * n - 2 * m)return cout << "NO" << endl, 0;
int anss = 0, sum = k;
cout << "YES" << endl;
while (k)
{
int _min;
if (sum - k < m - 1)
{
_min = min(k, m - 1);
num[++cnt] = _min;
ans[cnt][0] = 'R';
}
else if (sum - k < 2 * (m - 1))
{
_min = min(k, m - 1);
num[++cnt] = _min;
ans[cnt][0] = 'L';
}
else if (sum - k < 2 * (m - 1) + 1)
{
_min = 1;
num[++cnt] = _min;
ans[cnt][0] = 'D';
}
else if (sum - k >= 4 * n * m - 2 * n - 2 * m - (n - 1))
{
cnt++;
_min = min(k, n - 1);
num[cnt] = _min;
ans[cnt][0] = 'U';
}
else if (anss % 3 == 0)
{
_min = min(k, m - 1);
if (_min)
{
cnt++;
num[cnt] = _min;
ans[cnt][0] = 'R';
}
anss++;
}
else if (anss % 3 == 1)
{
_min = min(k, 3 * (m - 1));
int __min = _min / 3;
if (__min)
{
cnt++;
num[cnt] = __min;
ans[cnt][0] = 'U';
ans[cnt][1] = 'D';
ans[cnt][2] = 'L';
}
if (_min % 3 == 1)
{
num[++cnt] = 1;
ans[cnt][0] = 'U';
}
if (_min % 3 == 2)
{
num[++cnt] = 1;
ans[cnt][0] = 'U';
ans[cnt][1] = 'D';
}
anss++;
}
else
{
_min = 1;
num[++cnt] = _min;
ans[cnt][0] = 'D';
anss++;
}
k -= _min;
}
cout << cnt << endl;
for (int i = 1; i <= cnt; i++)cout<< num[i] << " " << ans[i] << endl;
return 0;
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
return Raiden::work();
}

题解:CF1301B Motarack's Birthday的更多相关文章

  1. Codeforces Round #619 (Div. 2) A~D题解

    最近网课也开始了,牛客上一堆比赛题目也没补,所以就D题后面的也懒得补了 A.Three String 水题 #include <cstdio> #include <cstring&g ...

  2. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  3. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  4. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  5. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  6. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  7. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  9. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  10. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. 初三年后集训测试---T1排序

    初三年后集训测试 $T 1 $ 排序 $$HZOI$$ ·题意: 给定 \(4n\) 个整数,求 : \[\max\{\sum_{i=1}^{4n}(A_{i,1} \times A_{i,2} - ...

  2. C# 导出Excel NPOI 修改指定单元格的样式 或者行样式

    参考文章:原文链接:https://blog.csdn.net/chensirbbk/article/details/52189985 #region 2.NPOI读取Excel 验证Excel数据的 ...

  3. Kubernetes-7:Pod健康检查原理-探针(就绪检测、存活检测)

    探针-就绪探测.存活探测 探针是由kubelet对容器执行的定期诊断,要执行诊断,kubelet调用由容器实现的Handler,有三种类型的处理程序: ExecActive:在容器内执行指定命令,若命 ...

  4. Wordpress 建立公司网站

    1. 先安装好wordpress wordpress 6.4.2-php8.1-fpm-alpine php8.1 Login to wordpress http://www.hei-ya.com/w ...

  5. spark 先groupby 再从每个group里面选top n

    import spark.implicits._ val simpleData = Seq(("James","Sales","NY",90 ...

  6. ubuntu 20.04安装GCC G++ 6.2,支持c++ 14

    1. 下载源码包 wget http://ftp.gnu.org/gnu/gcc/gcc-6.2.0/gcc-6.2.0.tar.bz2 2. 解压 tar jxf gcc-6.2.0.tar.bz2 ...

  7. 变“金点子”为“好应用”,合合信息智能文档处理技术助力大学生探索AI创新边界

    谈"糖"色变.追求养生.低卡生活--这些热门词汇频频在社交媒体上掀起讨论热潮.有这样一批年轻人不但捕捉到了这些词汇背后真实的用户需求,并且正在利用AI技术寻找解决之道. 近日,&q ...

  8. Angular Material 18+ 高级教程 – CDK Accessibility の Focus

    介绍 CDK Focus 是对原生 DOM focus 的上层封装和扩展. Focus Origin 原生 DOM focus 我们只能知道 element 被 focus 了,但是无法知道它是怎么被 ...

  9. CSS – Transition & Animation

    前言 之前的笔记 CSS – W3Schools 学习笔记 (3) 就有讲过 CSS Transitions 和 CSS Animations. 这里做一个整理, 补上一些细节. Transition ...

  10. Asp.net core 学习笔记之 Tag Helper

    refer : https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/authoring?view=aspnetcore ...