2678 凌波微步(枚举)

这是一道关于二维空间路径规划的问题,玩家从位置(xMe, yMe)出发,目标是回到(xHome, yHome)。过程中有3对传送门可供使用,每次使用花费10秒。任务是找到返回家的最短时间。给定输入包括起始和目标位置,以及每对传送门的位置,输出返回家的最短时间。样例输入为(0, 0, 20, 20)和三对传送门,样例输出为14秒。" 111852413,10295711,SIA-Gateway:微服务网关配置与管理详解,"['微服务', 'API网关', '路由配置', '监控', '日志管理']
摘要由CSDN通过智能技术生成

你在一个二维空间里的(xMe,yMe)位置,你的家在(xHome,yHome)位置。每一秒钟你可以选择从你当前位置向上下左右四个方向之一移动一个单位。你现在归心似箭,觉得这么走很慢,所幸你有技能“凌波微步”,在这片二维空间中,有3对传送门,每一对传送门以(xs,ys,xt,yt)的形式给出,表示你到达(xs,ys)点就可以发动“凌波微步”技能,花费10秒钟到达(xt,yt)点,相反你也可以花费10秒钟从(xt,yt)点发动“凌波微步”技能到达(xs,ys)点。“凌波微步”技能可以无限多次发动,但只能在所给出的3对传送门之间使用。请问你回家最短用时多少秒。
输入
输入第一行4个整数,依次是xMe、yMe、xHome、yHome,表示当前你的位置和你家的位置。
接下来三行,每行描述一对传送门(xs, ys, xt, yt),含义见题面(0 <= xi, yi <= 10^9)
输出
输出仅一行,包含一个整数表示回家的最少用时
输入样例

0 0 20 20
1 1 18 20
1000 1003 1000 1004
1000 1005 1000 1006
输出样例
14

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll xs,ys,xe,ye,ans;
ll X1[3],X2[3],Y1[3],Y2[3];
int used[3];
ll dis(ll x1,ll y1,ll x2,ll y2)
{
 return abs(x1-x2)+abs(y1-y2);
}
void dfs(int k,ll xl,ll yl,ll sum)
{
	if(k==3)
	{
		ans=min(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值