JOI 国有
在 JOI 国,船运是通用的运输方式。有
JOI 国计划引入新船。我们可以选择任意岛屿对,让这对岛屿用新引进的船直接通航。
一天发生了一个事故,一条停泊的船被袭击了。JOI 国的首相 K 决定引入新船的同时,还需要满足以下安全条件:
- 当一艘船停靠在岛屿
时,在船上的警卫数量要大于等于
然而,因为雇佣警卫很贵,我们想最小化雇佣警卫的人数。只要满足「可以通过一些数量的船从任意一个岛屿前往任意其他岛屿」这一条件,可以停止目前正在运行的航线。
因此,我们会按如下方法运营航线。此处,
对于新引进的
艘船中的每一艘,选择两座岛屿,让这对岛屿用新引进的船直接通航选择一些(大于等于
艘)船并停止这条航线。允许停止新引进的船形成的航线对于每艘船,让它停靠在它所连接的两座岛屿中的一座。然后安排一定数量的警卫上船。此外,还需满足如下条件:
条件:对于每对岛屿
,可以通过重复如下操作几次来运输一名乘客从岛屿 前往岛屿 。在这个过程中,应全程满足安全条件:- 让一个乘客或警卫登上停靠在这个乘客或警卫所在岛的船
- 让一个乘客或警卫在这艘船停靠的岛下船
- 让一艘船从它目前停靠的岛出发前往它所连接的另一个岛
因为预算有限,可以最多引入
给定岛屿,航线信息和可以引进的船数,写一个程序计算对于每个
输入格式
第一行三个整数
第二行
接下来
输出格式
输出
样例输入 1
4 3 0 2 1 3 2 1 2 2 3 3 4
样例输出 1
7
如果新引进的船是
- 船
最初停在岛屿 ,有 名警卫登上船 - 船
最初停在岛屿 ,有 名警卫登上船 - 船
最初停在岛屿 ,有 名警卫登上船
下面用如下两个例子解释如何运输乘客:
- 把乘客从岛屿
运输到岛屿 - 把乘客从岛屿
运输到岛屿
可以按如下方法把乘客从岛屿
# | 操作 | 船停靠的岛屿 | 船上警卫数 | 岛上警卫数 |
---|---|---|---|---|
- | - | |||
让船 |
||||
让一个乘客上船 |
||||
让船 |
||||
让一个乘客和一个警卫下船 |
||||
让一个乘客和一个警卫上船 |
||||
让船 |
||||
让一个乘客下船 |
||||
让船 |
||||
让一个乘客上船 |
||||
让船 |
||||
让一个乘客下船 |
可以按如下方法把乘客从岛屿
# | 操作 | 船停靠的岛屿 | 船上警卫数量 | 岛上警卫数 |
---|---|---|---|---|
- | - | |||
让一个警卫下船 |
||||
让一个警卫上船 |
||||
让船 |
||||
让一个乘客上船 |
||||
让船 |
||||
让一个乘客下船 |
因为不可能雇佣小于等于
这组样例满足子任务
样例输入 2
4 3 1 2 1 3 2 1 2 2 3 3 4
样例输出 2
7 5
如果新引进的船数量为
如果新引进的船数量为
- 用引进的船连接岛屿
和岛屿 (下面称这条船为船 ) - 停止船
所在航线 - 船
最初停在岛屿 ,有 名警卫登上船 - 船
最初停在岛屿 ,有 名警卫登上船 - 船
最初停在岛屿 ,有 名警卫登上船
这组样例满足子任务
样例输入 3
3 3 0 1 1 1 1 2 1 3 2 3
样例输出 3
2
如果新引进的船数量为
- 停止船
所在航线 - 船
最初停在岛屿 ,有 名警卫登上船 - 船
最初停在岛屿 ,有 名警卫登上船
这组样例满足子任务
样例输入 4
8 7 0 2 2 2 2 2 2 2 2 1 2 2 3 3 4 4 5 5 6 6 7 7 8
样例输出 4
14
这组样例满足所有子任务的限制。
样例输入 5
8 7 0 16 39 36 23 15 48 23 56 1 2 1 3 2 4 2 5 3 6 3 7 7 8
样例输出 5
245
这组样例满足子任务
样例输入 6
10 13 4 314 159 265 358 979 323 846 264 338 327 1 2 1 4 2 3 2 5 3 6 4 5 4 7 5 6 5 8 6 9 7 8 8 9 9 10
样例输出 6
3139 2901 2722 2567 2461
这组样例满足子任务
数据范围
对于所有输入数据,满足:
- 可以通过一些数量的船从任意一个岛屿前往任意其他岛屿
详细子任务附加限制及分值如下表所示。
子任务编号 | 附加限制 | 分值 |
---|---|---|
无附加限制 |