P2323 HNOI2006 公路修建問題

2022-03-04 04:13:41 字數 1542 閱讀 8055

輸入格式:

輸出格式:

輸入樣例#1: 

4 2 5 

1 2 6 5

1 3 3 1

2 3 9 4

2 4 6 1

輸出樣例#1: 

6 

1 1

2 1

4 1

solution:本題貪心+並查集。

首先求最大值的最小值,顯然需要二分答案,問題就是如何check,對於本題要構造一棵生成樹,不一定是最小生成樹但必須滿足最大值最小,所以我們直接$o(n)$掃一遍所有的邊,先把滿足c1的限制的邊都加入並查集且判斷是否至少有k條邊,再去判斷c2的限制,判斷能否形成生成樹就好了。

**:

/*

code by 520 --8.19

*/#include

#define il inline

#define ll long long

#define for(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)

#define bor(i,a,b) for(int (i)=(b);(i)>=(a);(i)--)

using

namespace

std;

const

int n=10005

;int n,m,k,fa[n],ans[n<<1

];struct

node e[n

<<1

];int

gi()

int find(int x)

il bool check(int

x)

if(totreturn0;

for(i,

1,m) if(e[i].c2<=x)

return0;

}il

void print(int

x) for(i,

1,m) if(e[i].c2<=x)

}

il void

init()

printf(

"%d\n

",pp),print(pp);

for(i,

1,m) if(ans[i]) printf("

%d %d\n

",i,ans[i]);

}int

main()

HNOI2006 公路修建問題

time limit 10 sec memory limit 162 mb submit 2543 solved 1468 submit status discuss oi island是乙個非常漂亮的島嶼,自開發以來,到這兒來旅遊的人很多。然而,由於該島嶼剛剛開發不久,所以那裡的交通情況還是很糟糕...

bzoj1196 HNOI2006 公路修建問題

oi island是乙個非常漂亮的島嶼,自開發以來,到這兒來旅遊的人很多。然而,由於該島嶼剛剛開發不久,所以那裡的交通情況還是很糟糕。所以,oier association組織成立了,旨在建立oi island的交通系統。oi island有n個旅遊景點,不妨將它們從1到n標號。現在,oier as...

1196 HNOI2006 公路修建問題

oi island是乙個非常漂亮的島嶼,自開發以來,到這兒來旅遊的人很多。然而,由於該島嶼剛剛開發不久,所以那裡的交通情況還是很糟糕。所以,oier association組織成立了,旨在建立oi island的交通系統。oi island有n個旅遊景點,不妨將它們從1到n標號。現在,oier as...