AT_arc024_4.[ARC024D] バス停
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
高桥国的高桥王为了改善国内交通,决定设置几个公交站。高桥国的道路只有两种走向:东西向和南北向。从某个基准点向东 i 公里修建了第 i 条南北向的公路,而在北 j 公里修建了第 j 条东西向公路。第 i 条南北路和第 j 条东西路的交点表示为 (i,j)。因为道路是无限延伸的,所以任何相交的两条路都有交点。公交站只能设置在这些交点上,并且一个交点至多只能有一个公交站。
目前已经设置了 N 个公交站。但此时高桥王发现了个严重的问题:由于道路太窄,公交车无法转弯,每条线路只能沿一个方向行驶,这样一来,某些公交站之间就成了孤立的,无法互相流通。这是非常不便的,因此需要增设一些公交站,使得任意两个公交站之间,即使需要换乘也能到达,而换乘后的总距离应等于它们之间的曼哈顿距离。也就是说,对于每对公交站 (a,b) 和 (c,d),必须存在一条换乘路径,使总移动距离为 ∣a−c∣+∣b−d∣ 公里。
受预算限制,总共只能设立 10,000 个公交站,也就是说,还可以再增设 10,000−N 个公交站。在满足上述条件情况下,找出应该增设的公交站位置。如果有多种方案,任选其一即可。
输入格式
输入使用以下格式:
N
x1 y1
x2 y2
...
xN yN
- 第 1 行是一个整数 N (2≤N≤1,000),表示已经设置好的公交站数量。
- 接下来的 N 行,每行两个整数 xi (1≤xi≤1,000) 和 yi (1≤yi≤1,000),这表示第 i 个公交站位于交叉点 (xi,yi)。
- 对于所有 i=j,都有 (xi,yi)=(xj,yj)。
- 至少存在一个可行解。
输出格式
输出应该新增的公交站位置,格式如下:
M
x1 y1
x2 y2
...
xM yM
- 第 1 行是一个整数 M (0≤M≤10,000−N),表示新增公交站的数量。
- 接下来的 M 行,每行两个整数 xi (1≤xi≤1,000) 和 yi (1≤yi≤1,000),表示第 i 个新增站位于交叉点 (xi,yi)。
- 对于所有 i=j,都有 (xi,yi)=(xj,yj)。
- 新增站不能与已有站重合。
- 在总共的 N+M 个公交站中,任意两站之间的最短距离必须等于它们之间的曼哈顿距离。
输入输出样例
输入#1
2 1 1 2 2
输出#1
1 1 2
输入#2
4 1 1 2 2 3 4 4 3
输出#2
4 1 2 3 2 3 3 4 4
输入#3
7 2 4 3 2 4 6 5 1 6 5 7 3 8 7
输出#3
15 3 6 8 5 2 2 7 5 2 5 6 6 3 1 5 6 6 2 6 1 7 1 7 2 2 3 6 7 2 6
说明/提示
部分分数
题目包含部分分数:
- 如果能正确解决所有 2≤N≤100 的测试用例,得 10 分。
- 如果能正确解决所有 2≤N≤1,000 的测试用例,额外得 90 分,总计 100 分。
示例解释 1
经过公交站 (1,1) 的公交车只能驶向 (i,1) 或 (1,j)(其中 i,j 是任意整数)。同理,经过站点 (2,2) 的公交车只能驶向 (i,2) 或 (2,j)。如果增设站点 (1,2),可以使任何两个站点可达。同样增设站点 (2,1) 也可以,甚至同时增设这两处也行。
示例解释 2
请注意,新增加的站点之间也必须满足最短路径等于曼哈顿距离的条件。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?