BZOJ2654: tree(陳立傑)

2654: tree(陳立傑)

Time Limit: 30 Sec   Memory Limit: 512 MB
Submit: 229   Solved: 91
[ Submit][ Status]

Description

  給你一個無向帶權連通圖,每條邊是黑色或白色。讓你求一棵最小權的剛好有need條白色邊的生成樹。
  題目保證有解。
php

Input

  第一行V,E,need分別表示點數,邊數和須要的白色邊數。
  接下來E行
  每行s,t,c,col表示這邊的端點(點從0開始標號),邊權,顏色(0白色1黑色)。
spa

Output

  一行表示所求生成樹的邊權和。blog

Sample Input

2 2 1
0 1 1 1
0 1 2 0


Sample Output

2

HINT

數據規模和約定

  0:V<=10

  1,2,3:V<=15

  0,..,19:V<=50000,E<=100000

  全部數據邊權爲[1,100]中的正整數。
ip

 

思路:咱們發現,若是咱們給白邊增長權值,作最小生成樹,因爲白邊權值增大,致使不容易選白邊。記f(x)爲給白邊增長x權值,作最小生成樹後,選白邊的數量,能夠發現,f(x)隨x增大而減少。因此能夠二分xget

但這種狀況,假如我只能選1條白邊。it

二分到x=4時,一條白邊都不選,當x=3的時候,能夠選兩條白邊io

相關文章
相關標籤/搜索