题目名称 | 328. 服务器储存信息问题 |
---|---|
输入输出 | servers.in/out |
难度等级 | ★★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 4 |
题目来源 | cqw 于2009-04-24加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:11, 提交:35, 通过率:31.43% | ||||
hee | 100 | 0.055 s | 5.75 MiB | C++ |
zhengtn03 | 100 | 0.151 s | 2.15 MiB | C++ |
水中音 | 100 | 0.151 s | 5.75 MiB | C++ |
dydxh | 100 | 0.161 s | 5.52 MiB | C++ |
feng | 100 | 0.184 s | 21.86 MiB | C++ |
hee | 100 | 0.221 s | 4.89 MiB | C++ |
kaaala | 100 | 0.314 s | 2.16 MiB | C++ |
Pom | 100 | 0.470 s | 5.94 MiB | C++ |
王者自由 | 100 | 0.494 s | 5.93 MiB | C++ |
Pom | 100 | 0.510 s | 5.94 MiB | C++ |
本题关联比赛 | |||
20110318 | |||
20110318 | |||
HAOI2009 模拟试题4 |
关于 服务器储存信息问题 的近10条评论(全部评论) | ||||
---|---|---|---|---|
不理解…,为什么+slf就会错…难道走的不是spfa而是一个纯粹宽搜的过程吗
|
$Byteland$ 王国准备在各服务器间建立大型网络并提供多种服务。
网络由 $n$ 台服务器组成,用双向的线连接。两台服务器之间最多只能有一条线直接连接,同时,每台服务器最多只能和 $10$ 台服务器直接连接,但是任意两台服务器间必然存在一条路径将它们连接在一起。每条传输线都有一个固定传输的速度。$δ (v , w)$ 表示服务器 $v$ 和 $w$ 之间的最短路径长度,且对任意的 $V$ 有$δ (V , V)=0$ 。
有些服务器比别的服务器提供更多的服务,它们的重要程度要高一些。我们用 $r(v)$ 表示服务器 $V$ 的重要程度 $(rank)$ 。 $rank$ 越高的服务器越重要。
每台服务器都会存储它附近的服务器的信息。当然,不是所有服务器的信息都存,只有感兴趣的服务器信息才会被存储。服务器 $V$ 对服务器 $w$ 感兴趣是指,不存在服务器 $U$ 满足, $r(U)>r(W)$ 且$δ (V , U)<= δ (V ,W)$ 。
举个例子来说,所有具有最高 $rank$ 的服务器都会被别的服务器感兴趣。如果 $V$ 是一台具有最高 $rank$ 的服务器,由于$δ (V , V) =0$ ,所以 $V$ 只对具有最高 $rank$ 的服务器感兴趣。我们定义 $B(V)$ 为 $V$ 感兴趣的服务器的集合。
我们希望计算所有服务器储存的信息量,即所有服务器的$| B(V) |$之和。 $Byteland$ 王国并不希望存储大量的数据,所以所有服务器存储的数据量 $( | B(V) |之和 )$ 不会超过 $30n$ 。
你的任务是写一个程序,读入 $Byteland$ 王国的网络分布,计算所有服务器存储的数据量。
第一行两个整数 $n$ 和 $m$, $(1 ≤ n ≤ 30 000 , 1 ≤ m ≤ 5n)$ 。 $n$ 表示服务器的数量, $m$ 表示传输线的数量。
接下来 $n$ 行,每行一个整数,第 $i$ 行的整数为 $r(i)(1 ≤ r(i) ≤ 10)$ ,表示第 $i $台服务器的$rank$ 。
接下来 $m$ 行,每行表示各条传输线的信息,包含三个整数 $a , b , t(1 ≤ t ≤ 1000 , l ≤ a , b ≤ n , a ≠ b)$ 。 $a$ 和 $b$ 是传输线所连接的两台服务器的编号, $t$ 是传输线的长度。
一个整数,表示所有服务器存储的数据总量,即$| B(V) |$之和。
4 3 2 3 1 1 1 4 30 2 3 20 3 4 20
9
$B(1)={1 , 2} , B(2)={2} , B(3)={2 , 3} , B(4)={1 , 2 , 3 , 4}$ 。