POJ 3723 Conscription【最小生成树】
来源:互联网 发布:五十而知天命的意思 编辑:程序博客网 时间:2024/05/29 12:10
题意:
征用一些男生和女生,每个应都要给10000元,但是如果某个男生和女生之间有关系,则给的钱数为10000减去相应的亲密度,征集一个士兵时一次关系只能使用一次。
分析:
kruskal求最小生成树,注意男生和女生用偏移量处理。
代码:
#include<iostream>#include<algorithm>#include<cstdio>using namespace std;struct edge{int u, v, w;};const int maxn = 20050, maxm = 50005;edge e[maxm];int n, m ,R;int pa[maxn], _rank[maxn];bool cmp(const edge &e1,const edge &e2){ return e1.w<e2.w;}int _find(int a){ if(a == pa[a]) return a; else return pa[a] = _find(pa[a]);}void unite(int a, int b){ int ra = _find(a), rb = _find(b); if(_rank[ra] < _rank[b]) pa[ra] = rb; else{ pa[rb] = ra; if(_rank[ra] == _rank[rb]) _rank[ra]++; } return;}int same(int a, int b){ return _find(a) == _find(b);}int kruskal(int r){ sort(e, e+r, cmp); for(int i = 0; i < n+m; i++){ pa[i] = i; } int res = 0; for(int i = 0; i < r; i++){ if(!same(e[i].u,e[i].v)){ unite(e[i].u, e[i].v); res += e[i].w; } } return res;}int main (void){ int c;scanf("%d",&c); while(c--){ fill(_rank, _rank + n + m, 1); scanf("%d%d%d",&n,&m,&R); int x, y, r; for(int i = 0; i < R;i++){ scanf("%d%d%d",&x, &y, &r); e[i] = (edge){x, y + n, -r}; } printf("%d\n",10000*(n+m) + kruskal(R)); }}
0 0
- poj 3723 Conscription ---最小生成树
- 【POJ】3723 Conscription 最小生成树
- poj 3723 Conscription (最小生成树)
- POJ 3723 Conscription(最小生成树)
- POJ 3723 Conscription【最小生成树】
- POJ, 3723 Conscription(最小生成树)
- POJ-3723 Conscription(最小生成树)
- poj 3723 Conscription(最小生成树)
- poj 3723 Conscription(最小生成树拓展)
- POJ 题目3723 Conscription(最小生成树变形)
- POJ 3723 Conscription(最小生成树-Kruskal)
- POJ 3723 Conscription(最小生成树--kruskul)
- POJ - 3723 Conscription(最小生成树Kruskal,思路)
- poj 3723 Conscription 【最小生成树(克鲁斯卡尔)】
- POJ 3723 Conscription(构造+最小生成树Kruskal)
- POJ 3723 Conscription(并查集+最小生成树)
- POJ 3723 Conscription (Kruskal并查集求最小生成树)
- [POJ](3723)Conscription ---- 最小生成树(Kruskal)
- Unity-官方教程:我如何制作一个天空盒?
- 数的子结构
- 数组指针面试题
- 宏函数
- CentOS6.5 Docker操作记录
- POJ 3723 Conscription【最小生成树】
- poj 2750 Potted Flower(线段树+动态规划)
- LeetCode 104. Maximum Depth of Binary Tree
- RPM方式安装Mysql
- Light OJ 1095 Arrange the Numbers (容斥)
- IEEE Scholarone 修改稿提交的deadline时间
- 【转载】php的xml分析函数
- hdu2564--(string数组的分割)
- 二叉树的镜像