POJ 2349 Arctic Network

POJ 2349 Arctic Network_第1张图片POJ 2349 Arctic Network_第2张图片

这题就是用最少的路径,使得图有S个连通分量。再求这些路径中的最大值。

用Kruskal算法,在刚好有S个连通分量时终止运算就行了。

double max(double a,double b) {return a>b?a:b;}
//outpost
struct outpost{
	int x,y;
	outpost():x(0),y(0){}
	void init(int x,int y){
		this->x=x;this->y=y;
	}
	int operator*(const outpost&b)const{
		return (x-b.x)*(x-b.x)+(y-b.y)*(y-b.y);
	}
}I[500];
int In;
//边 
struct edge{
	int from,to;
	double value;
	void init(int from,int to,double value){
		this->from=from;this->to=to;this->value=value;
	}
	bool operator <(const edge&b)const{
		return value>T;
	while(T--){
		int S,C,x,y;
		scanf("%d%d",&S,&C);In=0;
		//存outpost位置 
		for(int i=0;i


你可能感兴趣的:(POJ,并查集)