SOJ 3366 watering hole
来源:互联网 发布:矩阵论第二版课后答案 编辑:程序博客网 时间:2024/04/30 22:55
题目连接:http://zuojie.3322.org:88/soj/contest/problem.action?cid=279&alias=J
这个题点太多,肯定不能用prim算法进行求解,所以只能用克鲁斯卡尔算法。
以前一直只知道克鲁斯卡尔的算法思想。但是从未动手写过。今天按照思想实现了下,还是挺方便的。
#include<stdio.h>#include<algorithm>using namespace std;int n,m;int father[200005];struct node{ int u; int v; int len;};node edge[200005];void init(){ int i; for(i=0;i<=n;i++) father[i]=i;}bool cmp(node a,node b){ return a.len<b.len;}int find(int p){ if(father[p]==p) return p; return father[p]=find(father[p]);}int main(){ int i,a,b,l,money,x,y,save,ans; while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0) break; init(); ans=0,save=0,money=0; for(i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&l); edge[i].u=a; edge[i].v=b; edge[i].len=l; money=money+l; } sort(edge+1,edge+1+m,cmp); for(i=1;i<=m;i++) { x=find(edge[i].u); y=find(edge[i].v); if(x!=y) { father[x]=y; ans=ans+edge[i].len; } } save=money-ans; printf("%d\n",save); } return 0;}
- SOJ 3366 watering hole
- Watering Hole
- [USACO08OCT]Watering Hole
- [Usaco08Oct] Watering Hole
- [USACO08OCT]Watering Hole
- Watering Hole(题解)
- 【USACO08OCT】浇水洞Watering Hole
- USACO oct. 09 Watering Hole
- 图论之Watering Hole
- [Usaco2008 Oct]Watering Hole 挖水井
- 洛谷 P1550 [USACO08OCT]打井Watering Hole
- USACO - Oct08 Gold Watering Hole 挖井 Kruskal演算法+点权转边权
- 【学术篇】洛谷1550——打井Watering Hole
- [洛谷P1550] [USACO08OCT]打井Watering Hole [最小生成树]
- 新的开始( [USACO08OCT]打井Watering Hole)
- Coming to a watering hole near you: OLPC's mesh networking
- Hole
- soj
- C++ 学习笔记1
- “线程间操作无效: 从不是创建控件的线程访问它”
- Investigation of CircleCube Video Player (Day 3)
- Debian下安装任务管理软件Trac
- 七种Mysql表类型
- SOJ 3366 watering hole
- wordpress apache2 虚拟主机配置
- C/C++中修饰符const、extern、static、volatile的用法【解决了】
- win7旗舰版运行VS2010出错,提示MSVCR100.dll没有被指定在windows上运行
- PROFIBUS ARM9 SoM with User Programmable FPGA
- Linux下的查找 命令
- Ogre 的 四元数quaternion(转)
- C++ 学习笔记2
- Access violation at address 22204C71 in module 'dotnetcoreide140.bpl'. Read of address 00000000