#summercsps268C. 双机巡检
双机巡检
【题目描述】
环形展馆闭馆后,两台巡检机器人需要依次赶往系统指定的检查点.有时一个阶段只有一处故障,有时两处故障必须同时处理.
环形展馆中有 个检查点,沿顺时针方向依次编号为 .检查点 与检查点 相邻.
两台机器人初始分别位于检查点 和检查点 .它们之间没有区别,可以位于同一个检查点,也可以在移动过程中相遇或互相经过.
两点 之间的移动距离定义为环上两条路径中较短一条的长度:
接下来依次进行 个巡检阶段.第 个阶段给出一个包含 个检查点的集合 ,其中 .在该阶段结束时,对于 中的每个检查点,都必须至少有一台机器人位于该处.
两台机器人可以在相邻阶段之间任意移动.一次移动的代价等于机器人经过的边数,一个方案的总代价等于两台机器人全部移动距离之和.
请计算完成所有巡检阶段所需的最小总代价.
【输入描述】
第一行输入两个整数 ,分别表示检查点数量和巡检阶段数量.
接下来的 行描述各个巡检阶段.每行首先输入一个整数 :
- 如果 ,随后输入一个整数 ,表示 ;
- 如果 ,随后输入两个不同的整数 ,表示 .
【输出描述】
输出一个整数,表示完成所有巡检阶段所需的最小总代价.
【样例 1】
【样例 1 输入】
8 4
1 3
1 7
2 2 6
1 4
【样例 1 输出】
7
【样例 1 解释】
一种最优方案如下:
- 第一阶段,将位于 的机器人移动到 ,代价为 ;
- 第二阶段,将位于 的机器人移动到 ,代价为 ;
- 第三阶段,将位于 的机器人移动到 ,位于 的机器人移动到 ,总代价增加 ;
- 第四阶段,将位于 或 的一台机器人移动到 ,总代价增加 .
总代价为 .
【样例 2】
【样例 2 输入】
1 3
1 1
1 1
1 1
【样例 2 输出】
0
【样例 3】
见选手目录下的 Data/sample3.in 和 Data/sample3.ans.
该样例满足 .
【样例 4】
见选手目录下的 Data/sample4.in 和 Data/sample4.ans.
该样例满足 .
【样例 5】
见选手目录下的 Data/sample5.in 和 Data/sample5.ans.
该样例中所有阶段均满足 .
【样例 6】
见选手目录下的 Data/sample6.in 和 Data/sample6.ans.
该样例中所有要求的检查点编号均属于 .
【样例 7】
见选手目录下的 Data/sample7.in 和 Data/sample7.ans.
该样例中所有阶段均满足 .
【样例 8】
见选手目录下的 Data/sample8.in 和 Data/sample8.ans.
该样例无特殊性质.
【数据规模与约定】
对于所有测试数据,保证:
- ;
- 且 ;
- ;
- 当 时,.
| 子任务编号 | 分数 | 特殊性质 |
|---|---|---|
| 对所有阶段均有 | ||
| 所有要求的检查点编号均属于 | ||
| 对所有阶段均有 | ||
| 无特殊性质 |
【大样例下载链接】
相关
在下列比赛中: