AT2282 [ABC051C] Back and Forth 题解
Description
在一个平面直角坐标系内,有一点 和点 你需要从 点走到 点,再走到 点,再走到 点,再回到 点。期间,你只能沿网格线走,除 点,其他任一格点都只能走一次,求最短路径(输出以 组成的字符串)。
Solution
如图,方格内的任意一条路径都相等,即3条灰线长度相等,且为 两点间最短路径。
但两红线在一来回后都有且仅有1次走过,所以,第二来回不能再走方格内的任一一条路径。
黄橙两线即为方格外最短路径,正确性显然。
输出四种方向即可。
Code
#include<bits/stdc++.h>
using namespace std;
int sx,sy,tx,ty;
int cx,cy;
int main(){
cin>>sx>>sy>>tx>>ty;
cx=tx-sx;
cy=ty-sy;
for(int i=1;i<=cy;i++){
cout<<"U";
}
for(int i=1;i<=cx;i++){
cout<<"R";
}
for(int i=1;i<=cy;i++){
cout<<"D";
}
for(int i=1;i<=cx;i++){
cout<<"L";
}
cout<<"L";
for(int i=1;i<=cy+1;i++){
cout<<"U";
}
for(int i=1;i<=cx+1;i++){
cout<<"R";
}
cout<<"DR";
for(int i=1;i<=cy+1;i++){
cout<<"D";
}
for(int i=1;i<=cx+1;i++){
cout<<"L";
}
cout<<"U";
return 0;
}
完结撒花!!
本文作者:larryyu_blog
本文链接:https://www.cnblogs.com/larryyu/p/17045639.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步