河南第八届省赛(引水工程)(Prim求最小生成树)
来源:互联网 发布:淘宝介入后怎么撤销 编辑:程序博客网 时间:2024/04/27 20:32
题目地址:点击打开链接
思路:建一个虚拟点,和所有的水库相连权值为自建水库的花费,跑一遍最小生成树就行,蓝桥杯题库的原题
AC代码:
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <map>#include <cstring>#include <climits>#include <cmath>#include <cctype>using namespace std;const int zui = 1000000000;int map1[310][310];int cost[310];int visit[310];int lowdist[310];int n;void Prim(){ memset(visit,0,sizeof(visit)); int i,j,k; for(i=1; i<=n; i++) { lowdist[i] = map1[0][i]; } visit[0] = 1; int sum = 0; for(i=1; i<=n; i++)//要并入n个点所以要循环n次 { int min2 = zui; for(j=1; j<=n; j++) { if(!visit[j] && lowdist[j] < min2) { min2 = lowdist[j]; k = j; } } visit[k] = 1; sum += lowdist[k]; for(j=1; j<=n; j++) { if(!visit[j] && map1[k][j] < lowdist[j]) { lowdist[j] = map1[k][j]; } } } printf("%d\n",sum);}int main(){ int k; int i,j; scanf("%d",&k); while(k--) { scanf("%d",&n); int cost; for(i=0; i<=n; i++) { for(j=0; j<=n; j++) { map1[i][j] = zui; } } for(i=1; i<=n; i++) { scanf("%d",&cost); map1[0][i] = map1[i][0] = cost; //map1[0][i] = cost; } for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { scanf("%d",&map1[i][j]); } } Prim(); } return 0;}
0 0
- 河南第八届省赛(引水工程)(Prim求最小生成树)
- 河南第八届acm-D引水工程【最小生成树】
- NYOJ1239 引水工程(最小生成树,Prim)
- 第八届河南省赛 zzuoj 10409: D.引水工程 (最小生成树)
- 第八届河南省赛 引水工程【最小生成树(克鲁斯卡尔)】
- 第八届河南省程序设计大赛D引水工程(最小生成树)
- 还是畅通工程(prim求最小生成树)
- 第八届河南省赛引水工程最小生成树NYOJ1239
- zzuoj-10409: D.引水工程 (最小生成树+原点)
- nyoj--1239--引水工程(最小生成树)
- 引水工程 最小生成树
- 引水工程(第八届)
- 普里姆(Prim)求最小生成树
- poj2075(prim()求最小生成树)
- HDU 1233 还是畅通工程(Prim求最小生成树)
- nyoj1239 引水工程 最小生成树
- 第八届河南省程序设计大赛-引水工程,最小生成树转化一下就可以了;
- 第八届河南省程序设计大赛 D.引水工程【最小生成树相关】
- 面试中关于 layout_weight 笔记
- 用Jersey创建restful
- IOS中self.xx 和 _xx 的区别
- Leetcode120: 3Sum
- 151024 总结
- 河南第八届省赛(引水工程)(Prim求最小生成树)
- 搭建高可用mongodb集群(五)--集群搭建的三种方式
- Android 编程下 PopupWindow 窗口的弹出
- 关于京东购物车动画
- 通过UDP发送和接收数据包
- 1030. Travel Plan
- 一点一滴的积累坚持
- Nagios 配置测试
- 从无头单链表中删除节点