• [HDUOJ] 1233 还是畅通工程


    //#pragma GCC optimize(2)
    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    #include <cmath>
    #include <cctype>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <set>
    #include <map>
    #include <ctime>
    #include <vector>
    #include <fstream>
    #include <list>
    #include <iomanip>
    #include <numeric>
    using namespace std;
    typedef long long ll;
    
    const int MAXN = 1e6 + 10;
    
    int father[MAXN];
    
    struct node
    {
    	int from, to, val;
    
    }edge[MAXN];
    
    bool cmp(node a, node b)
    {
    	return a.val < b.val;
    }
    
    int findfather(int x)
    {
    	if(father[x] == x)
    		return x;
    	return father[x] = findfather(father[x]);
    }
    
    bool checkin(int x, int y)
    {
    	int p = findfather(x), q = findfather(y);
    	if(p != q)
    		return true;
    	return false;
    }
    
    void join(int x, int y)
    {
    	int p = findfather(x), q = findfather(y);
    	if(p != q)	
    		father[p] = q;
    }
    
    
    
    int main()
    {
        //ios::sync_with_stdio(false);
    
        //cin.tie(0);     cout.tie(0);
    
        int N, x, y, z;
    
        while(cin>>N && N)
        {
        	for(int i = 0; i < N + 100; i++)
    			father[i] = i;
        	
        	N = N * (N - 1) / 2;
        	
    		for(int i = 0; i < N; i++)
        	{
        		scanf("%d%d%d", &edge[i].from, &edge[i].to, &edge[i].val);
        	}
        	
        	sort(edge, edge + N, cmp);
        	
        	int sumedge = 0, sumlen = 0;
    
        	for(int i = 0; i < N; i++)
        	{
        		if(checkin(edge[i].from, edge[i].to))
        		{
        			join(edge[i].from, edge[i].to);
        			sumedge++;
        			sumlen += edge[i].val;
        		}
    
        		if(sumedge == N - 1)
        			break;
        	}
        	cout<<sumlen<<endl;
        }
    
        return 0;
    }
  • 相关阅读:
    animation-fill-mode
    css3 media queries
    三列,左右两列宽度固定,中间宽度自适应
    两列布局,一列定宽,一列宽度自适应
    css3 animation
    transition和animation区别
    transform 和 transition
    弹出框样式
    python map和filter函数
    leetcode Z字形字符串
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270448.html
Copyright © 2020-2023  润新知