FZU1096,QS Network
来源:互联网 发布:巨灵网络 编辑:程序博客网 时间:2024/06/05 08:45
题解:
把网络适配器的价格加的网络电缆的价格中,再对新的价格图跑一遍prim就行了
#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<climits>using namespace std;int t,n;int maz[1009][1009];int price[1009];bool vis[1009];int dis[1009];void prim(){ int i,j,t,pos,sum; memset(vis,false,sizeof(vis)); memset(dis,0,sizeof(dis)); for (i = 1; i <= n; ++i) { dis[i] = maz[1][i]; } vis[1] = true; sum = 0; for (i = 0; i < n-1; ++i) { t = INT_MAX; for (j = 1; j <= n; ++j) { if (!vis[j] && t > dis[j]) { t = dis[j]; pos = j; } } sum += t; vis[pos] = true; for (j = 1; j <= n; ++j) { if (!vis[j] && dis[j] > maz[pos][j]) { dis[j] = maz[pos][j]; } } } printf("%d\n",sum);}int main(){ int i,j; while (~scanf("%d",&t)) { while (t--) { scanf("%d",&n); for (i = 1; i <= n; ++i) { scanf("%d",&price[i]); } for (i = 1; i <= n; ++i) { for (j = 1; j <= n; ++j) { scanf("%d",&maz[i][j]); } } for (i = 1; i <= n; ++i)//把网络适配器的价格加到网络电缆的价格中去 { for (j = i+1; j <= n; ++j) { maz[i][j] += price[i]; maz[i][j] += price[j]; maz[j][i] = maz[i][j]; } } prim(); } } return 0;}
0 0
- FZU1096,QS Network
- QS Network
- QS Network
- QS Network
- QS Network
- QS Network
- FZU 1096 QS Network
- FOJ QS Network
- ZOJ 1586 QS Network
- ZOJ 1586 QS Network
- zoj 1586 QS Network
- ZOJ 1586 QS Network
- HUT G - QS Network
- G - QS Network
- ZOJ-1586-QS Network
- zoj_1586 QS Network
- ZOJ:1586 QS Network
- zoj 1586 QS Network
- 分布式数据库的未来工坊(2)
- 大白话讲解卡方鉴定【案例】播放的背景音乐对于卖酒有什么样的销售影响?
- 快排与堆排序、归并排序的比较
- 1032
- 新东方能不能迎来第二春?
- FZU1096,QS Network
- 文章标题黑马程序员--C语言的基础知识
- 技术点
- 那些没有root权限的岁月:一分钟解决mutt No mailbox
- Android适配
- 晶振旁的电阻(并联与串联)
- 收录的一部分关于autoconf automake makefile的网址
- HDU 2025 查找最大元素
- SlidingMenu(一)