POJ2377最大路径问题
来源:互联网 发布:dbc文件解析软件 编辑:程序博客网 时间:2024/05/30 02:25
///修网络有个N个顶点,其中有M跳路径每条的代价为C求出其中的最大路径数
//思路:明显最小生成树的相反情况用kruskal算法
//384K47MS#include <iostream>#include <algorithm>using namespace std;#define MAX_E 20005#define MAX_N 3000namespace{int rank[MAX_N];int par[MAX_N];//父亲//初始化n个元素void init_union_find(int n){for (int i=0;i<n;++i){rank[i] = 0;par[i] = i;}}//查询树的根int find_root(int x){if (par[x]==x) return x;else{return par[x] = find_root(par[x]);}}//合并x和y所属的集合void unite(int x,int y){x = find_root(x);y = find_root(y); if (x==y) return;if (rank[x]<rank[y]) par[x] = y;else{par[y] = x;if (rank[x]==rank[y]) rank[x]++;}}//判断x和y是否属于一个集合bool same(int x,int y){return find_root(x)==find_root(y);}}struct net_edge{int u,v,cost;net_edge(int b,int d,int c):u(b),v(d),cost(c){}net_edge(){}};net_edge edg[MAX_E];static int V,E;int comp(const net_edge&e1,const net_edge&e2){return e1.cost>e2.cost;}int kruskal(){sort(edg,edg+E,comp);//边排序init_union_find(V);int res = 0;for (int i=0;i<E;++i){net_edge e = edg[i];if (!same(e.u,e.v)){unite(e.u,e.v);res+=e.cost;}}return res;}bool check_root(){int root = find_root(0);bool ok = true;for (int i=1;i<V;i++){if (find_root(i)!=root){ok = false;break;}}return ok;}int main(){scanf("%d %d",&V,&E);for (int i=0;i<E;++i){int src,dest,cost;scanf("%d %d %d",&src,&dest,&cost);edg[i] = net_edge(src-1,dest-1,cost);}int ret = kruskal();if (check_root()){printf("%d\n",ret);}elseprintf("-1\n");return 0;}
0 0
- POJ2377最大路径问题
- POJ2377(最大生成树)
- poj2377 最大生成树 Kruskal
- poj2377
- poj2377
- POJ2377
- poj2377
- poj2377
- poj2377
- poj2377
- POJ2377 Bad Cowtractors 【最大生成树】
- POJ2377 Bad Cowtractors(最大生成树)
- poj2377 Bad Cowtractors (最大生成树)
- poj2377 -- Bad Cowtractors(最大生成树)
- POJ2377 Bad Cowtractors【Kruskal】【求最大生成树】
- 求矩阵的最大路径的问题
- 求矩阵的最大和路径问题
- POJ2377 用并查集实现最大生成树(速度较快)
- NoCoder:一个本科毕业生对程序员职业生涯和进阶的一点浅见
- [LeetCode] Symmetric Tree
- Quartus II sof文件转 jic文件
- 《数据结构》第四章 字符串和数组 教学设计
- Android ImageView的scaleType属性与adjustViewBounds属性
- POJ2377最大路径问题
- C语言 存储模型
- pluto list
- Ameba 博客 词汇语法句型 20141101
- 详解spl_autoload_register()函数
- CentOS 7 安装VNC-Server
- lua游戏开发实践指南学习笔记1
- HTTP客户端之使用request方法向其他网站请求数据
- Quick-x cocos2dx下的彩色文本显示--RichLabel