题目背景
译自 Izborne Pripreme 2019 (Croatian IOI/CEOI Team Selection) D2T2。4s,0.5G。
题目描述
给定 N 个点 M 条边的无向连通图,边有边权。有 K 个关键点 A1,A2,⋯,AK,容量为 S1,S2,⋯,SK。
图中的居民要疏散。也就是说,你需要构造一个序列 B1,B2,⋯,BN,使得:
- ∀1≤i≤N,1≤Bi≤K;
- 对于 1≤i≤K,定义 $\displaystyle \mathrm{cnt}_i=\sum_{1\le j\le N} [B_j=i]$,也就是 i 在 B 序列中出现的次数。则 cnti≤Si。
定义序列 B 的疏散时间为 $\displaystyle \max_{1\le i\le N} \operatorname{dist}(i,A_{B_i})$,其中 dist(u,v) 指图中 u,v 间最短路的长度。
求出疏散时间的最小值。保证 ∑iSi≥N。
输入格式
第一行,三个正整数 N,M,K;
接下来 M 行,每行三个正整数 u,v,w,描述一条无向边 (u,v),边权为 w。保证 u=v。
接下来 K 行,每行两个正整数描述 Ai,Si。
保证 ∑iSi≥N。
输出格式
输出一行一个数,表示答案。
5 5 2
1 2 1
1 3 3
2 3 4
3 4 1
4 5 1
1 10
4 2
3
7 8 3
1 2 5
2 3 3
3 4 5
1 4 1
4 5 7
5 6 2
6 7 1
4 7 4
3 3
7 3
6 2
5
提示
对于 100% 的数据,保证:
- 1≤N≤105;
- N−1≤M≤3×105;
- 1≤K≤17;
- 给定图连通,无自环;
- 1≤w,Si≤109;
- 1≤u,v,Ai≤N;
- Si 两两不同;
- ∑iSi≥N。
子任务编号 |
N≤ |
M≤ |
K≤ |
得分 |
1 |
100 |
500 |
5 |
30 |
2 |
105 |
3×105 |
10 |
3 |
17 |
40 |