NYOJ1239 引水工程(最小生成树,Prim)
题目:
引水工程
时间限制: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)相关推荐
- NYOJ - [第八届河南省程序设计大赛]引水工程(最小生成树)
题目链接:http://nyoj.top/problem/1239 内存限制:64MB 时间限制:2000ms 题目描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投 ...
- 引水工程 最小生成树
问题 D: 引水工程 时间限制: 2 Sec 内存限制: 64 MB 提交: 5 解决: 5 [ 提交][ 状态][ 讨论版] 题目描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程 ...
- NYOJ 1239 引水工程【prim算法】
引水工程 时间限制:2000 ms | 内存限制:65535 KB 难度:3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程, ...
- HDU 1863畅通工程(最小生成树)(prim算法)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 畅通工程//最小生成树prim
题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 引水工程 Kruskal + Prim
Kruskal题解 : 以案例输入为例 有五个缺水地区 , 这个个缺水地区之间建立联系的费用已经给出 并且之间水库的费用也已经给出 , 自己水库也已看为 是另一个 点 , 这样就有了 6 个点 , 这 ...
- nyoj 1239 引水工程【最小生成树】虚拟节点
引水工程 时间限制: 2000 ms | 内存限制: 65535 KB 难度: 3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性 ...
- 引水工程--nyoj1239
引水工程 时间限制:2000 ms | 内存限制:65535 KB 难度:3 输入 第一行: K 表示有多少组测试数据. 接下来对每组测试数据: 第1行: N 表示有N个区域( 1<=N&l ...
- 第八届河南省程序设计大赛 引水工程 Prim算法
引水工程 时间限制:2000 ms | 内存限制:65535 KB 难度:3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程, ...
最新文章
- Android init.rc如何启动service去执行sh脚本
- 【MySQL】触发器:让指定某一字段的值等于id
- How to debug Material delta download
- 猫头鹰的深夜翻译:Java中的CAS(Compare And Swap)
- linux 根目录分配多少好,Linux下硬盘怎么分区才合适:根分区(/)交换分区(/swap)和/boot分区需要多大...
- 多目录多源文件的驱动Makefile模板
- 【HackerRank】Cut the tree
- 2017年12月HCNP考试易错题汇总
- 软件测试工程师企业级培训视频教程
- mapgis坡度分析_gis气候分析图_用MAPGIS做城市气候的分析需要什么类型的数据可以从哪下载_滁州气象...
- 2022淘宝618超级喵运会怎么玩?2022淘宝618喵运会玩法技巧
- 元转万元单位换算_度数单位换算(元换算成万元换算器)
- 怎么关闭fcitx的简繁切换和vscode的查找快捷键冲突了
- 有两个瓶子,一个瓶子是5升_隐藏的功能,装在瓶子中的消息和痴呆的面包师。...
- Linux系统查看FC HBA卡信息的方法
- zookeeper和k8s_Kubernetes(k8s)运行ZooKeeper,一个分布式系统协调器
- DUTOJ-1003: Zeratul的军训游戏
- Jmeter书中不会教你的(7)——prev变量用于输出请求和响应内容
- 世界十大风景名胜[图]
- 苹果打包添加信任设备(测试包无法安装)