Watering Hole(题解)
来源:互联网 发布:育儿软件下载排行 编辑:程序博客网 时间:2024/05/01 00:25
Watering Hole
题面:
Farmer John希望把水源引入他的N (1 <= N <= 300) 个牧场,牧场的编号是1~N.他将水源引入某个牧场的方法有两个,一个是在牧场中打一口井,另一个是将这个牧场与另一个已经有水源的牧场用一根管道相连.
在牧场i中打井的费用是W_i (1 <= W_i <= 100000).
把牧场i和j用一根管道相连的费用是P_ij (1 <= P_ij <= 100000, P_ij = P_ji, P_ii = 0). 请你求出Farmer John最少要花多少钱才能够让他的所有牧场都有水源.
输入:
第1行: 一个正整数N.
第2~N+1行: 第i+1行包含一个正整数W_i.
第N+2~2N+1行: 第N+1+i行包含N个用空格分隔的正整数,第j个数表示P_ij.
输出:
总共有四个牧场.在1号牧场打一口井需要5的费用,在2或者3号牧场打井需要4的费用,在4号牧场打井需要3的费用.在不同的牧场间建立管道需要2,3或4的费用.
样例:
输入:
4
5
4
4
3
0 2 2 2
2 0 3 3
2 3 0 4
2 3 4 0
输出:
9
思路:
一开始看到我就感觉要GG,然后发现有很简单的Prime做法。
首先把打井的费用当作牧场和地下的边的权值,然后Prime跑一边就好了。
真代码:
#include<bits/stdc++.h>using namespace std;const int shuzu = 2100;int n,w[shuzu][shuzu],dis[shuzu],ans;//w数组为个点间连接费用 bool f[shuzu];//用来记录是否在树中 void init(){ cin>>n; for(int i = 1;i <= n;i++){ scanf("%d",&dis[i]); }//打井的费用就是和地下相连的边的权 for(int i = 1;i <= n;i++){ for(int k = 1;k <= n;k++){ scanf("%d",&w[i][k]); } }//地上各边的权 }void work(){ f[0] = 1;//地下已经在树中 for(int i = 1;i <= n;i++){ int minn = 0x3f3f3f3f,p; for(int k = 1;k <= n;k++){ if(dis[k] < minn && !f[k]) minn = dis[k],p = k; } f[p] = 1; //cout<<p<<" "<<minn<<" "; ans += minn; for(int k = 1;k <= n;k++){ if(dis[k] > w[p][k] && !f[k]) dis[k] = w[p][k]; } }//prime跑一边,所有牧场都加入到树中 cout<<ans;}int main(){ init(); work(); return 0;}
阅读全文
1 0
- Watering Hole(题解)
- Watering Hole
- SOJ 3366 watering hole
- [USACO08OCT]Watering Hole
- [Usaco08Oct] Watering Hole
- [USACO08OCT]Watering Hole
- 新的开始( [USACO08OCT]打井Watering Hole)
- 【USACO08OCT】浇水洞Watering Hole
- USACO oct. 09 Watering Hole
- 图论之Watering Hole
- [Usaco2008 Oct]Watering Hole 挖水井
- 洛谷 P1550 [USACO08OCT]打井Watering Hole
- Watering the Fields题解
- USACO - Oct08 Gold Watering Hole 挖井 Kruskal演算法+点权转边权
- 【学术篇】洛谷1550——打井Watering Hole
- [洛谷P1550] [USACO08OCT]打井Watering Hole [最小生成树]
- Coming to a watering hole near you: OLPC's mesh networking
- Hole
- 解决WINCE6.0 error C2220: warning treated as error问题
- 欢迎使用CSDN-markdown编辑器
- ArXiv 网页的HTML内容
- 从基础小白到业内大神,ps高手的成长之路
- 共享单车技术含量,一篇文章全说透了!
- Watering Hole(题解)
- 作家笔下的数学与数学家
- SSHelper: 在ubuntu 和安卓手机之间无线传输文件
- 【maven】--常用命令和POM文件
- 在Eclipse中安装e(fx)lipse (JavaFX工具)
- 第七周项目1
- bzoj4742 [Usaco2016 Dec]Team Building
- 飞讯微信拓客系统 V2.6破解版 吸粉裂变工具
- 领域应用 | 智能导购?你只看到了阿里知识图谱冰山一角