hdu3367 Pseudoforest
题意:
对当前的一个图,求一个最大的伪森林,即边权值最大,每一个连通分量至多含有一个圈的森林。
分析:
类似于求一个最大生成树,先将边权值排序,之后就是一个加边合并的过程,俩点所在边可以加入到当前集合有俩个条件:
1.两点在两个集合,且有至少一个集合没有环
2.两点在一个集合,且这个集合没有环
#include<iostream>#include<algorithm>using namespace std;struct edge{int u,v,c;}e[100005];int f[10005],n,m;bool ee[100005],ff[10005];__int64 total;bool cmp(edge a,edge b){return a.c>b.c;}void init(){ memset(ee,false,sizeof(ee)); memset(ff,false,sizeof(ff));for(int i=0;i<n;i++) f[i]=i;}int find(int x){if(x==f[x])return f[x]; f[x]=find(f[x]);return f[x];}void Union(int x,int y,int c){int a=find(x);int b=find(y);if(a==b) {//俩点在同一个集合,则当前若已经包含有环,则该边不可加入 if(ff[a])return ; total+=c; ff[a]=true; }else {if(ff[a]&&ff[b]) return ;//俩点不在同一个集合,则当俩个集合都已经包含有环时,不可加入 total+=c; f[b]=a;if(ff[a] ||ff[b]) ff[a]=true; }}int main(){while(scanf("%d %d",&n,&m)==2 && (n||m)) { init();for(int i=0;i<m;i++) scanf("%d %d %d",&e[i].u,&e[i].v,&e[i].c); sort(e,e+m,cmp);//将边从大到小排序 total=0;for(int i=0;i<m;i++) Union(e[i].u,e[i].v,e[i].c); printf("%I64d\n",total); }return 0;}
转载于:https://www.cnblogs.com/nanke/archive/2012/02/09/2344629.html
hdu3367 Pseudoforest相关推荐
- 图论500题 慢慢写
题目来源 https://blog.csdn.net/ffq5050139/article/details/7832991 这篇博客用来记录自己刷的图论题 先占个坑 所有题目都来自上面的链接 会慢慢更 ...
- hdu 3367 Pseudoforest (最大生成树 最多存在一个环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3367 Pseudoforest Time Limit: 10000/5000 MS (Java/Oth ...
- “光庭杯”第五届华中北区程序设计邀请赛 暨 WHU第八届程序设计竞赛(部分解题报告)
这次做的比较郁闷,比赛的时候老是出这样那样的问题,卡题卡的要死.最终只做出三道,赛后静下心来我和队友一共又做出4道,要是比赛有这种状态我们的排名就好多了. 现在说说题目: 1001(hdu3361): ...
- 【HDOJ图论题集】【转】
1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...
- 一系列图论问题[转]
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- 【转】并查集MST题集
转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 ...
- 杭电OJ分类题目(4)-Graph
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...
- kk_想要学习的知识
2018/4/27 计算几何 一.简介 计算几何属于ACM算法中比较冷门的分类,在省赛中只在前几年考察过,这两年还没有考过,而且和高精度计算一样,遇到题目主要靠套模板,因此对题意的理解至关重要,而且往 ...
最新文章
- 通过OKR 进行项目过程管理
- 相机自动对焦 OpenCV 图像清晰度评价
- 【正一专栏】轮回-从坚信去年骑士会逆转到今年坚定看好勇士横扫
- SAP Spartacus B2B功能,只渲染BodyContent position里的UI
- docker 镜像选择_为什么选择Docker?
- LeWeb – 2011 –综述
- 贪心策略--16经典问题总结!
- linux进程q是什么意思,Linux进程
- 运营商数据治理实践-郭岳
- 【李宏毅2020 ML/DL】P26-33 Explainable ML
- JS简单实现邻近算法(KNN)
- 虚拟机您的计算机无法启动,一键解决win10虚拟机无法启动的问题
- Prolog编程求解图搜索问题
- mtk9652对比鸿鹄818哪个好
- IBM建立大中华区云计算中心供验证测试
- 阻塞队列(三):DelayQueue
- JAVA有percentile函数吗_五分位算法
- 一个神奇的测试_神奇的心理测试:一个问题就能测试出你的情商!超准慎测
- Java后端返回Long类型数据与前端展示不一致(精度丢失)
- Python函数——Numpy size()