题解:CF1301B Motarack's Birthday
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的更多相关文章
- Codeforces Round #619 (Div. 2) A~D题解
最近网课也开始了,牛客上一堆比赛题目也没补,所以就D题后面的也懒得补了 A.Three String 水题 #include <cstdio> #include <cstring&g ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- 仅花一天时间,开发者重制 32 年前经典 Mac 应用!
导读:在这个快节奏的技术世界里,重温过去并从中汲取灵感总是一件有趣的事情.今天要介绍的是一款仅用一天时间重制的经典 Macintosh 应用--Stapler.这款应用最初发布于1992年,现在由一位 ...
- 【1】Kaggle赛题解读:RSNA 2024 Lumbar Spine Degenerative Classification
赛题名称:RSNA 2024 Lumbar Spine Degenerative Classification 中文:腰椎退行性病变分类 kaggle官网赛题链接:https://www.kaggle ...
- JavaScript设计模式样例十七 —— 迭代器模式
迭代器模式(Itrator Pattern) 定义:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示.目的:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示.场景:$ ...
- Windows PE 安装
Microsoft 官方提供的 Windows PE 默认只有命令行界面.如果想要使用带有桌面环境的 Windows PE,推荐使用微 PE . 下载并安装 Windows ADK 和 WinPE 加 ...
- C#项目—模拟考试
C#模拟考试软件 开发了一个<模拟考试>的小软件,此小软件练习的目的主要是为了体会编程思想,深度理解高内聚.低耦合,掌握编程思维逻辑的大招,告别垃圾代码,重点体会编程之美,练习时长30分钟 ...
- Redis实战-session共享之修改登录拦截器
在上一篇中Redis实战之session共享,我们知道了通过Redis实现session共享了,那么token怎么续命呢?怎么刷新用户呢?本来咱们就通过拦截器来实现这两个功能. 登录拦截器优化: 凯哥 ...
- 使用 nuxi dev 启动 Nuxt 应用程序的详细指南
title: 使用 nuxi dev 启动 Nuxt 应用程序的详细指南 date: 2024/9/2 updated: 2024/9/2 author: cmdragon excerpt: 摘要:本 ...
- 6.24.2 数据库&漏洞口令&应急取证
windows日志分析神器 logonTracer-外内网日志 github下载:#JPCERTCC/LogonTracer:通过可视化和分析 Windows 事件日志来调查恶意 Windows 登录 ...
- 有哪些让你「 爽到爆炸 」的 Windows 软件?
前言 本文源于知乎的一个提问,如标题所示:有哪些让你「 爽到爆炸 」的 Windows 软件?今天大姚给大家分享6款C#/.NET开源且免费的Windows软件,希望可以帮助大家提高学习.开发.办公效 ...
- Driud——数据库连接池的使用
Druid数据库连接池的使用 1. 导入 jar 包 jar包下载:Central Repository: com/alibaba/druid/1.1.12 (maven.org) 导入项目中:(复制 ...