poj 2377 Bad Cowtractors
来源:互联网 发布:中控考勤机软件 编辑:程序博客网 时间:2024/05/17 17:56
原题链接:http://poj.org/problem?id=2377
最大生成树,注意不连通的情况。。
#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<map>using std::map;using std::min;using std::sort;using std::pair;using std::vector;using std::multimap;#define pb(e) push_back(e)#define sz(c) (int)(c).size()#define mp(a, b) make_pair(a, b)#define all(c) (c).begin(), (c).end()#define iter(c) __typeof((c).begin())#define cls(arr, val) memset(arr, val, sizeof(arr))#define cpresent(c, e) (find(all(c), (e)) != (c).end())#define rep(i, n) for(int i = 0; i < (int)n; i++)#define tr(c, i) for(iter(c) i = (c).begin(); i != (c).end(); ++i)const int N = 1100;const int INF = 0x3f3f3f3f;struct Kruskal { struct edge { int u, v, w; inline bool operator<(const edge &x) const { return w > x.w; } }G[N * 20]; int E, par[N], rank[N]; inline void init(int n) { E = 0; rep(i, n + 1) { par[i] = i; rank[i] = 0; } } inline int find(int x) { while(x != par[x]) { x = par[x] = par[par[x]]; } return x; } inline bool unite(int x, int y) { x = find(x), y = find(y); if(x == y) return false; if(rank[x] < rank[y]) { par[x] = y; } else { par[y] = x; rank[x] += rank[x] == rank[y]; } return true; } inline void built(int m) { int u, v, w; while(m--) { scanf("%d %d %d", &u, &v, &w); G[E++] = (edge){ u, v, w }; } sort(G, G + E); } inline void kruskal(int n) { bool f = false; int ans = 0, cnt = 0;; rep(i, E) { int u = G[i].u, v = G[i].v; if(unite(u, v)) { ans += G[i].w; if(++cnt >= n - 1) { f = true; break; } } } printf("%d\n", f ? ans : -1); } inline void solve(int n, int m) { init(n), built(m), kruskal(n); }}go;int main() {#ifdef LOCAL freopen("in.txt", "r", stdin); freopen("out.txt", "w+", stdout);#endif int n, m; while(~scanf("%d %d", &n, &m)) { go.solve(n, m); } return 0;}
0 0
- poj 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- POJ-2377-Bad Cowtractors
- POJ 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- Bad Cowtractors.(POJ-2377)
- poj 2377 Bad Cowtractors
- POJ 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- 【POJ 2377 Bad Cowtractors】
- POJ 2377 Bad Cowtractors
- poj 2377 Bad Cowtractors
- poj 2377Bad Cowtractors
- 【C++】双向链表
- gdb使用及原理【转】
- 由点击页面其它地方隐藏div所想到的jQuery的delegate
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2) B. Bear and Three Musketeers(STL_暴力)
- Android 蓝牙API
- poj 2377 Bad Cowtractors
- org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [si
- [leetcode-127]Word Ladder(java)
- IOS CoreText.framework --- 基本用法
- solr Repeater(中转器)
- php 系统的代码组织
- SurfaceView+MediaPlayer 播放视频 锁屏 没有画面等各种问题的解决方案。
- Android webview 和html 交互
- 创建银行账户 -- 未验证