首页 >
头像 leleleeee
发表于 2025-12-20 17:17:28
首先我想说这道题真的很有意思,不过数据量稍微小了一些,所以我第一发水过去了,但是细想发现没这么简单,于是想了挺长时间写出了一发严谨的。我觉得经过思考大家应该都对这道题有一些理解。我就直接讲我的想法了。第一发ac我是思考了一会觉得只要距离相等,或者处于对角线(距离差2),就ok=true。然后ac了 展开全文
头像 wt函数格式不正确
发表于 2025-12-20 08:11:53
// 让我想起了小时候玩的那种2*n的推方块小游戏 // 让我们冷静地分情况讨论 // 1.如果两个人到终点的曼哈顿距离相等,那么肯定必定相等,不用放置障碍 /* 1.以上条件不满足,看看是否一个已经在终点了,如果是的话,那么另一个肯定追不上了 2.如果两个在同一条y=x+b的直线上,那么除 展开全文
头像 Jakeap
发表于 2025-12-20 12:06:16
直接分类讨论:题目不难哈,就只有数组两行,那么放障碍物也十分清晰。三种情况:第一种:坐标重合一定满足(无需障碍物)第二种:两个坐标呈现左下右上45度(无需障碍物)第三种:两个坐标呈现左上右下45度,这时需要障碍物将右边的第一个位置堵上,那右下位置只能走左上的路径了。注意第三种情况要处理特殊情况,注意 展开全文
头像 软件25_1张浩
发表于 2025-12-20 20:25:06
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { ll n; cin >> n; //初始标记设为false,考虑true的情况。 bool 展开全文
头像 周康禧
发表于 2025-12-20 23:11:51
两个人的最短路相同,因为只有两行,那么要么在同一个位置,要么刚好错开在不同的行,因为第一行到第二行(2,n)会比第二行的多一步,所以有一种就是(x1!=x2&&y1==y2+1) 然后另一种就是 让下面的右边防障碍,让它往上多一步,那么第一行的就在这个左边就行了(x1!=x2& 展开全文
头像 花碗
发表于 2025-12-20 15:54:28
先进行排序对每种情况进行分类讨论注意下形成对角线的的两种方式 #include <iostream> #include<algorithm> using namespace std; int main() { ios::sync_with_stdio(false); 展开全文
头像 吐雾兔
发表于 2025-12-20 00:09:35
n = int(input()) x1, y1 = map(int, input().split()) x2, y2 = map(int, input().split()) # 计算无障碍物时到终点(2,n)的最短路径长度 def calc_shortest(x, y, n): if x 展开全文
头像 驴主
发表于 2025-12-20 00:55:05
import sys n = int(input()) a, b = map(int, input().strip().split()) c, d = map(int, input().strip().split()) yes = 'YES' no = 'NO' # 前两种情况 if a + 展开全文
头像 五毫升_
发表于 2025-12-20 01:31:10
#include <iostream> using namespace std; int main() { int n; cin>>n; int x1,x2,y1,y2; cin>>x1>>y1; cin> 展开全文
头像 YunBaichuan
发表于 2025-12-20 09:23:38
思路:分类讨论 代码: import sys input = lambda: sys.stdin.readline().strip() import math inf = 10 ** 18 def I(): return input() def II(): return int 展开全文

等你来战

查看全部