题目:
引水工程
时间限制: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个区域引水管道的费用
输出
对于每组测试数据,输出占一行,即建立整个引水工程的最小费用。
样例输入
1
5
5 4 4 3 6
0 2 2 2 2
2 0 3 3 3
2 3 0 4 5
2 3 4 0 1
2 3 5 1 0
样例输出
10
来源
第八届河南省程序设计大赛
上传者
hnu_acm

思路:

首先给出了第i个水库自建水库的费用,其实就是给出了dis[i],省去我们初始化,给出了一张邻接矩阵的图,所以这个适合用Prim算法,问的是整个工程的最小费用,那么我们建好最小生成树后,把dis[i]的值加起来就是所求的费用,prim的的裸题

代码:

#include <cstdio>
#include <cstring>
#include <cctype>
#include <string>
#include <set>
#include <iostream>
#include <stack>
#include <cmath>
#include <queue>
#include <vector>
#include <algorithm>
#define mem(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
#define mod 1000007
#define N 8
#define M 12357
#define ll long long
using namespace std;
int t,n;
int dis[500],vis[500];
int map[350][350];
void Prim()
{int sum=0;mem(vis,0);for(int i=1; i<=n-1; i++){int k=1,minn=inf;for(int j=1; j<=n; j++){if(!vis[j]&&dis[j]<minn){minn=dis[j];k=j;}}vis[k]=1;for(int j=1; j<=n; j++)if(!vis[j]&&map[k][j]<dis[j])dis[j]=map[k][j];}for(int i=1; i<=n; i++)sum+=dis[i];printf("%d\n",sum);
}
int main()
{scanf("%d",&t);while(t--){scanf("%d",&n);for(int i=1; i<=n; i++)scanf("%d",&dis[i]);for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)scanf("%d",&map[i][j]);Prim();}return 0;
}

NYOJ1239 引水工程(最小生成树,Prim)相关推荐

  1. NYOJ - [第八届河南省程序设计大赛]引水工程(最小生成树)

    题目链接:http://nyoj.top/problem/1239 内存限制:64MB 时间限制:2000ms 题目描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投 ...

  2. 引水工程 最小生成树

    问题 D: 引水工程 时间限制: 2 Sec  内存限制: 64 MB 提交: 5  解决: 5 [ 提交][ 状态][ 讨论版] 题目描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程 ...

  3. NYOJ 1239 引水工程【prim算法】

    引水工程 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程, ...

  4. HDU 1863畅通工程(最小生成树)(prim算法)

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  5. 畅通工程//最小生成树prim

    题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  6. 引水工程 Kruskal + Prim

    Kruskal题解 : 以案例输入为例 有五个缺水地区 , 这个个缺水地区之间建立联系的费用已经给出 并且之间水库的费用也已经给出 , 自己水库也已看为 是另一个 点 , 这样就有了 6 个点 , 这 ...

  7. nyoj 1239 引水工程【最小生成树】虚拟节点

    引水工程 时间限制: 2000 ms  |  内存限制: 65535 KB 难度: 3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性 ...

  8. 引水工程--nyoj1239

    引水工程 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 输入 第一行: K 表示有多少组测试数据. 接下来对每组测试数据: 第1行: N 表示有N个区域( 1<=N&l ...

  9. 第八届河南省程序设计大赛 引水工程 Prim算法

    引水工程 时间限制:2000 ms  |  内存限制:65535 KB 难度:3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程, ...

最新文章

  1. Android init.rc如何启动service去执行sh脚本
  2. 【MySQL】触发器:让指定某一字段的值等于id
  3. How to debug Material delta download
  4. 猫头鹰的深夜翻译:Java中的CAS(Compare And Swap)
  5. linux 根目录分配多少好,Linux下硬盘怎么分区才合适:根分区(/)交换分区(/swap)和/boot分区需要多大...
  6. 多目录多源文件的驱动Makefile模板
  7. 【HackerRank】Cut the tree
  8. 2017年12月HCNP考试易错题汇总
  9. 软件测试工程师企业级培训视频教程
  10. mapgis坡度分析_gis气候分析图_用MAPGIS做城市气候的分析需要什么类型的数据可以从哪下载_滁州气象...
  11. 2022淘宝618超级喵运会怎么玩?2022淘宝618喵运会玩法技巧
  12. 元转万元单位换算_度数单位换算(元换算成万元换算器)
  13. 怎么关闭fcitx的简繁切换和vscode的查找快捷键冲突了
  14. 有两个瓶子,一个瓶子是5升_隐藏的功能,装在瓶子中的消息和痴呆的面包师。...
  15. Linux系统查看FC HBA卡信息的方法
  16. zookeeper和k8s_Kubernetes(k8s)运行ZooKeeper,一个分布式系统协调器
  17. DUTOJ-1003: Zeratul的军训游戏
  18. Jmeter书中不会教你的(7)——prev变量用于输出请求和响应内容
  19. 世界十大风景名胜[图]
  20. 苹果打包添加信任设备(测试包无法安装)

热门文章

  1. mac读取csv文件数据,采用逗号分隔
  2. 产妇《生娃记》-苏州
  3. ThinkServer RD650安装Ubuntu Server 16.04
  4. H264编码系列之profile level控制
  5. 38个漂亮的电子商务网站
  6. 回收/华为/MA5600/ADEE/ADEF/整机/用户电缆
  7. Django中间件之二
  8. 显控触摸屏SA-4.3A下载程序提示:选择的HMI型号不匹配
  9. INA219 技术笔记
  10. 谷歌服软法国,下一个可能就是苹果服软欧盟了吧?