欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1895B.Points and Minimum Distance
Points and Minimum Distance
题目描述
给定一个长度为 的整数序列 。你需要将这 个整数分成 对,每一对代表平面上的一个点的坐标。序列 中的每个数都必须恰好作为一个点的 或 坐标。注意,有些点可以相同。
在形成这些点之后,你需要选择一条路径 ,该路径从这些点中的某一个出发,终止于某一个点,并且至少访问所有 个点一次。
路径 的长度定义为路径上所有相邻点之间距离之和。这里,两个点 和 之间的距离定义为 。
你的任务是,合理地组成 个点,并选择一条路径 ,使得路径 的长度最小。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含一个整数 (),表示需要组成的点的数量。
接下来一行包含 个整数 (),表示序列 。
输出格式
对于每个测试用例,第一行输出路径 的最小可能长度。
接下来的 行中,第 行输出两个整数 和 ,表示第 个需要访问的点的坐标。
如果有多组答案,输出任意一组均可。
说明/提示
例如,在第一个测试用例中,你可以组成点 和 ,并从第一个点出发到第二个点。此时路径长度为 。
在第二个测试用例中,你可以组成点 、 和 ,并按这个顺序访问它们。此时路径长度为 $|20 - 10| + |20 - 30| + |10 - 10| + |30 - 30| = 10 + 10 + 0 + 0 = 20$。
由 ChatGPT 4.1 翻译
样例
2
2
15 1 10 5
3
10 30 20 20 30 10
9
10 1
15 5
20
20 20
10 30
10 30
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |