poj 2075 -- Tangled in Cables(最小生成树)
来源:互联网 发布:淘宝商品排名靠前 编辑:程序博客网 时间:2024/05/06 03:06
给一些地点名和地点之间路径,选出一些路是各地相通,求最短距离
最小生成树问题,可题目连数据范围都没写,写时候很纠结,没想到测试数据这么小
Kruskal解决
#include<iostream>#include<string>#include<cstdlib>#include<cstdio>using namespace std;struct Edge{ int u,v; double w;};struct PRE{ int i; string s;};int find(int x,PRE pre[]){ if(x!=pre[x].i) pre[x].i=find(pre[x].i,pre); return pre[x].i;}void Union(int x,int y,PRE pre[]){ int fx=find(x,pre); int fy=find(y,pre); pre[fx].i=fy;}int cmp(const void* p1,const void* p2){ Edge a=*(Edge*)p1; Edge b=*(Edge*)p2; if(a.w>b.w) return 1; else return -1;}int main(){ double total; cin>>total; int n; cin>>n; PRE* pre=new PRE[n]; for(int i=0; i<n; i++) { pre[i].i=i; cin>>pre[i].s; } int v; cin>>v; Edge* edge=new Edge[v]; for(int i=0; i<v; i++) { string tmp; cin>>tmp; for(int j=0; j<n; j++) if(tmp==pre[j].s) { edge[i].u=j; break; } cin>>tmp; for(int j=0; j<n; j++) if(tmp==pre[j].s) { edge[i].v=j; break; } cin>>edge[i].w; } qsort(edge,v,sizeof(Edge),cmp); double sum=0.0; int cnt=0; for(int i=0; i<v; i++) { if(find(edge[i].u,pre)!=find(edge[i].v,pre)) { sum+=edge[i].w; Union(edge[i].u,edge[i].v,pre); cnt++; } if(cnt==n-1) break; } if(sum>total) cout<<"Not enough cable"<<endl; else cout<<"Need "<<sum<<" miles of cable"<<endl; delete [] pre; delete [] edge;}
- poj 2075 -- Tangled in Cables(最小生成树)
- POJ 2075 Tangled in Cables(最小生成树)
- POJ 2075 Tangled in Cables(最小生成树)
- POJ 2075 Tangled in Cables 最小生成树
- POJ 2075 Tangled in Cables 最小生成树 Kruskal && Prim
- poj 2075 Tangled in Cables【最小生成树+字符串处理】
- POJ 2075 Tangled in Cables(最小生成树 kruscal)
- ZOJ 2326 Tangled in Cables(最小生成树--prime)
- poj -- 2075 Tangled in Cables (mst)
- POJ 2075 Tangled in Cables
- poj 2075 Tangled in Cables
- POJ 2075 Tangled in Cables
- poj 2075 Tangled in Cables
- poj 2075 Tangled in Cables
- POJ 2075 Tangled in Cables
- poj 2075 Tangled in Cables
- POJ 2075 Tangled in Cables
- POJ 2075 Tangled in Cables
- BeeFramework
- 单例设计模式
- Python的format方法用法
- C++ primer 学习记录-基础篇2(第四章)操作符及优先级
- 画ROC曲线
- poj 2075 -- Tangled in Cables(最小生成树)
- EJB3.0零碎要点---在部署web本地客户端的时候org.apache.jasper.JasperException: java.lang.ClassCastException: $Proxy
- Builder模式
- 互联网如何做流量
- cgroup学习(六)——attach task
- AI中的几种搜索算法---Tabu搜索算法
- Chapter 2. Rendering Water Caustics
- 解读Google分布式锁服务
- SVN+ANT实现远程Java WEB应用的更新