zoukankan      html  css  js  c++  java
  • nyoj--1239--引水工程(最小生成树)

    引水工程

    时间限制:2000 ms  |  内存限制:65535 KB
    难度:3
    描述

    南水北调工程是优化水资源配置、促进区域协调发展的基础性工程,是新中国成立以来投资额最大、涉及面最广的战略性工程,事关中华民族长远发展。“南水北调工程”,旨在缓解中国华北西北地区水资源短缺的国家战略性工程。就是把中国长江流域丰盈的水资源抽调一部分送到华北和西北地区。我国南涝北旱,南水北调工程通过跨流域的水资源合理配置,促进南北方经济、社会与人口、资源、环境的协调发展。

    整个工程分东线、中线、西线三条调水线。东线工程位于东部,因地势低需抽水北送至华北地区。中线工程从汉水与其最大支流丹江交汇处的丹江口水库引水,自流供水给黄淮海平原大部分地区,20多座大中城市;西线工程在青藏高原上,由长江上游向黄河上游补水。

    现在有N个区域需要建设水资源工程,它们可以自建水库解决缺水问题,也可以从已有水源的地区建立管道引水过来。当然,这些建设都需要大量投资。

    你能不能给出一个优化水资源配置方案,在保证每个区域都能用上水的前提下,使得整个引水工程费用最低。

    输入
    第一行: K 表示有多少组测试数据。
    接下来对每组测试数据:
    第1行: N 表示有N个区域( 1<=N<=300 )
    第2 行: W1 W2 …. WN Wi表示第i个区域自建水库需要的费用
    再有N行: Pi1 Pi2 …. Pin Pij表示建立第i个区域与第j个区域引水管道的费用
    输出
    对于每组测试数据,输出占一行,即建立整个引水工程的最小费用。
    样例输入
    155 4 4 3 60 2 2 2 22 0 3 3 32 3 0 4 52 3 4 0 12 3 5 1 0
    样例输出
    10
    来源
    第八届河南省程序设计大赛
    上传者

    hnu_acm


    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int n,pre[10010],cnt;
    struct node
    {
    	int x,y;
    	int val;
    }p[10010];
    void init()
    {
    	for(int i=0;i<10010;i++)
    	pre[i]=i;
    }
    int cmp(node s1,node s2)
    {
    	return s1.val<s2.val;
     } 
    int find(int x)
    {
    	return x==pre[x]?x:find(pre[x]);
    }
    int join(int x,int y)
    {
    	int fx=find(x);
    	int fy=find(y);
    	if(fx!=fy)
    	{
    		pre[fx]=fy;
    		return 1;
    	}
    	return 0;
    }
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		init();
    		cnt=0;
    		scanf("%d",&n);
    		for(int i=0;i<=n;i++)
    		{
    			for(int j=1;j<=n;j++)
    			{
    				scanf("%d",&p[cnt].val);
    				p[cnt].x=i,p[cnt++].y=j;
    			}
    		}
    		sort(p,p+cnt,cmp);
    		int sum=0;
    		for(int i=0;i<cnt;i++)
    		{
    			if(join(p[i].x,p[i].y))
    			sum+=p[i].val;
    		}
    		printf("%d
    ",sum);
    	}
    	return 0;
    }


  • 相关阅读:
    SuperMap房产测绘成果管理平台
    SuperMap产权登记管理平台
    Android adb shell am 的用法(1)
    由浅入深谈Perl中的排序
    Android 内存监测和分析工具
    Android 网络通信
    adb server is out of date. killing...
    引导页使用ViewPager遇到OutofMemoryError的解决方案
    adb logcat 详解
    How to send mail by java mail in Android uiautomator testing?
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273574.html
Copyright © 2011-2022 走看看