2021-2022-1 ACM集训队每周程序设计竞赛(1) - 问题 C: 不论你距我多远,哪怕刀山火海我愿为你走天下 - 题解

本文主要是介绍2021-2022-1 ACM集训队每周程序设计竞赛(1) - 问题 C: 不论你距我多远,哪怕刀山火海我愿为你走天下 - 题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

传送门

    • 不论你距我多远,哪怕刀山火海我愿为你走天下
      • 题目描述
      • 输入描述
      • 输出描述
      • 样例一
        • 输入
        • 输出
        • 提示
  • 题目分析
  • AC代码


不论你距我多远,哪怕刀山火海我愿为你走天下

  • 分割
  • 求和
  • 不论你距我多远,哪怕刀山火海我愿为你走天下
  • 跑图

时间限制:2秒
空间限制:256M


题目描述

小T和她的男神位于一个二维坐标平面上,x和y轴的正方向分别是水平向右和竖直向上。

小T位于点 ( s x , s y ) (sx, sy) (sx,sy),男神位于点 ( t x , t y ) (tx, ty) (tx,ty),满足男神在小T的右上方。

小T到每次可以向上或向下或向左或向右移动一个单位,她要到他的身旁 ( t x , t y ) (tx, ty) (tx,ty),再回到她自己原来的位置 ( s x , s y ) (sx, sy) (sx,sy),再回到他的身旁 ( t x , t y ) (tx, ty) (tx,ty),再回到自己原来的位置 ( s x , s y ) (sx, sy) (sx,sy)

请输出一种最短的走法,满足:除了 ( s x , s y ) (sx, sy) (sx,sy) ( t x , t y (tx, ty (tx,ty)外,不经过同一个点两次。


输入描述

一行用空格隔开的 4 4 4个整数 s x , s y , t x , t y ( − 1000 ≤ s x , s y , t x , t y ≤ 1000 ) sx, sy, tx, ty\ (-1000\leq sx, sy, tx, ty\leq 1000) sx,sy,tx,ty (1000sx,sy,tx,ty1000)

代表小T的起始位置 ( s x , s y ) (sx, sy) (sx,sy)和男神的位置 ( t x , t y ) (tx, ty) (tx,ty)


输出描述

输出一种小T的合法路径,分别用 U D L R UDLR UDLR来代表每一步的 上 下 左 右 上下左右 ,具体可见样例及解释

请按样例的方式来走QAQ


样例一

输入
0 0 1 2
输出
UURDDLLUUURRDRDDDLLU
提示
  • ( s x , s y ) (sx, sy) (sx,sy) ( t x , t y ) (tx, ty) (tx,ty) ( 0 , 0 ) → ( 0 , 1 ) → ( 0 , 2 ) → ( 1 , 2 ) (0,0)\rightarrow(0,1)\rightarrow(0,2)\rightarrow(1,2) (0,0)(0,1)(0,2)(1,2)
  • ( t x , t y ) (tx, ty) (tx,ty) ( s x , x y ) (sx, xy) (sx,xy) ( 1 , 2 ) → ( 1 , 1 ) → ( 1 , 0 ) → ( 0 , 1 ) (1,2)\rightarrow(1,1)\rightarrow(1,0)\rightarrow(0,1) (1,2)(1,1)(1,0)(0,1)
  • ( s x , s y ) (sx, sy) (sx,sy) ( t x , t y ) (tx, ty) (tx,ty) ( 0 , 0 ) → ( − 1 , 0 ) → ( − 1 , 1 ) → ( − 1 , 2 ) → ( − 1 , 3 ) → ( 0 , 3 ) → ( 1 , 3 ) → ( 1 , 2 ) (0,0)\rightarrow(-1,0)\rightarrow(-1,1)\rightarrow(-1,2)\rightarrow(-1,3)\rightarrow(0,3)\rightarrow(1,3)\rightarrow(1,2) (0,0)(1,0)(1,1)(1,2)(1,3)(0,3)(1,3)(1,2)
  • ( t x , t y ) (tx, ty) (tx,ty) ( s x , x y ) (sx, xy) (sx,xy) ( 1 , 2 ) → ( 2 , 2 ) → ( 2 , 1 ) → ( 2 , 0 ) → ( 2 , − 1 ) → ( 1 , − 1 ) → ( 0 , − 1 ) → ( 0 , 0 ) (1,2)\rightarrow(2,2)\rightarrow(2,1)\rightarrow(2,0)\rightarrow(2,-1)\rightarrow(1,-1)\rightarrow(0,-1)\rightarrow(0,0) (1,2)(2,2)(2,1)(2,0)(2,1)(1,1)(0,1)(0,0)

题目分析

这题本来是个特判题,但是鉴于比赛的时候才意思到这个问题并且特判比较难写,就让同学们按样例的方式来设计方案了。

这题一定要注意:男神在小T的右上方。因为这样的话就不用那么多的if-else来判断二者的相对位置了。

因此,我们只需要按照样例来模拟就好了。


AC代码

#include <bits/stdc++.h>
using namespace std;#define fi(i, l, r) for (int i = l; i < r; i++)#define U putchar('U')
#define D putchar('D')
#define L putchar('L')
#define R putchar('R')
int main()
{int sx,sy,tx,ty;while(cin>>sx>>sy>>tx>>ty){fi(i,sy,ty)U;fi(i,sx,tx)R;fi(i,sy,ty)D;fi(i,sx,tx)L;L;fi(i,sy,ty+1)U;fi(i,sx-1,tx)R;D;R;fi(i,sy-1,ty)D;fi(i,sx,tx+1)L;U;puts("");}return 0;
}

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/120227213

这篇关于2021-2022-1 ACM集训队每周程序设计竞赛(1) - 问题 C: 不论你距我多远,哪怕刀山火海我愿为你走天下 - 题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254959

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.