正题

题目链接:https://ac.nowcoder.com/acm/contest/1221/H


题目大意

给一张图,要求删掉一些边使得最小生成树权值不变,然后求删掉的边的最小权值。


解题思路

我们假设能够构成最小生成树的边权之和为sumsumsum,最小生成树的边权之和为kkk,都是确定的,所以我们剩下任意一颗最小生成树答案都是不变的,所以我们计算出sumsumsum和kkk就行了。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const int N=2e5+50;
struct node{int x,y;ll w;
}a[N];
int n,m,fa[N];
ll ans;
bool cmp(node x,node y)
{return x.w<y.w;}
int find(int x)
{if(fa[x]!=x) return fa[x]=find(fa[x]);return x;
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)fa[i]=i;for(int i=1;i<=m;i++)scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].w);sort(a+1,a+1+m,cmp);for(int l=1,r=1;l<=m;l=r=r+1){while(a[r+1].w==a[l].w) r++;for(int j=l;j<=r;j++){int x=find(a[j].x),y=find(a[j].y);if(x!=y) ans+=a[j].w;}for(int j=l;j<=r;j++){int x=find(a[j].x),y=find(a[j].y);if(x!=y) ans-=a[j].w,fa[y]=x;}}printf("%lld",ans);
}

牛客-Forsaken喜欢独一无二的树【并查集,最小生成树】相关推荐

  1. 刷题记录:牛客NC53074Forsaken喜欢独一无二的树

    传送门:牛客 题目描述: 众所周知,最小生成树是指使图中所有节点连通且边权和最小时的边权子集. 不过最小生成树太简单了,我们现在来思考一个稍微复杂一点的问题. 现在给定一个n个点,m条边的图,每条边e ...

  2. Forsaken喜欢独一无二的树

    众所周知,最小生成树是指使图中所有节点连通且边权和最小时的边权子集. 不过最小生成树太简单了,我们现在来思考一个稍微复杂一点的问题. 现在给定一个n个点,m条边的图,每条边e_i都有一个权值w_i.定 ...

  3. HDU 1512 Monkey King 左偏树 + 并查集

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1512 题意:有n个猴子,一开始每个猴子只认识自己.每个猴子有一个力量值,力量值越大表示这个猴子打架越厉害. ...

  4. 可持久化线段树【主席树】可持久化并查集【主席树+并查集】

    笼统的主席树原理 众所周知, 主席树是可以持久化的, 换言之你能知道你所维护信息的所有历史状态. 主席树是这样做的: 1. 首先建一颗朴素的线段树,代表初始状态 (下图黑色) , 也就是第0次操作后的 ...

  5. 树的距离(牛客网树上主席树+dfs序)

    链接:https://ac.nowcoder.com/acm/problem/14415 来源:牛客网 题目描述 wyf非常喜欢树.一棵有根数树上有N个节点,1号点是他的根,每条边都有一个距离,而wy ...

  6. 牛客小白月赛12 J 月月查华华的手机 (序列自动机模板题)

    链接:https://ac.nowcoder.com/acm/contest/392/J 来源:牛客网 题目描述 月月和华华一起去吃饭了.期间华华有事出去了一会儿,没有带手机.月月出于人类最单纯的好奇 ...

  7. HDU 1512 Monkey King(左偏树+并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1512 题       意: 有n个猴子,一开始每个猴子只认识自己.每个猴子有一个力量值,力量值越大表示 ...

  8. POJ - 2513 Colored Sticks(字典树+并查集+欧拉回路)

    题目链接:点击查看 题目大意:给出n个木棍,问若两两相连,最终能否构成一根长直木棍,相连的规则是两个木棍的相接端点的颜色需要保持相同 题目分析:关于这个题目,我们可以将每个木棍视为一条边,每个木棍的两 ...

  9. HDU2545 树上战争【树+并查集】

    树上战争 Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

最新文章

  1. [sso]搭建CAS单点服务器
  2. hdu 1043 Eight 搜索,哈希
  3. 零基础Java学习之包(Package)
  4. html5 网页桌面图标,打开控制面板是网页,而且桌面上很多图标变成网页
  5. Jenkins的关闭、重启
  6. 解决交通拥堵、监测核辐射、野外搜救…无人机将有哪些神应用?
  7. 【算法学习】AVL平衡二叉搜索树原理及各项操作编程实现(C++)
  8. Dalvik 堆内存管理与回收
  9. Bootstrap 图片样式
  10. web 前端常用组件【02】Select 下拉框
  11. Android 屏幕旋转的多种状态
  12. Scalaz(49)- scalaz-stream: 深入了解-Sink/Channel
  13. coreseek mysql_coreseek,php,mysql全文检索部署(一)-阿里云开发者社区
  14. 多个同1div float left换行题
  15. HTML指南针源码zip,ios 制作的指南针
  16. 蓝桥幼儿园(蓝桥杯)
  17. iOS使用UICollectionView只允许向左方向滑动,不允许向右方向滑动。
  18. QQ、YY与webRTC回声消除效果对比分析与展望
  19. C++八股文分享---数据结构其二---哈希表
  20. cad面积计算机,CAD中如何计算面积?

热门文章

  1. 单片机断电后静态存储区里面还有数据吗_单片机启动流程和存储架构详解
  2. 求职学习笔记|并发编程知识点常见问题总结(一)
  3. 华为机试支持python吗_4.10华为暑期实习生机试题目,python解答
  4. linux多内核调度,linux-kernel – 如何在Linux内核(Samsung Exynos5422)中实现异构多处理(HMP)调度?...
  5. 算法题目——二次函数三分求极值(HDU-3714)
  6. discuz mysql data_Discuz!显示 Database Error的原因和解决方法
  7. python远程监控服务器多个日志_python压测+paramiko远程监下载日志+js测试报告
  8. 软件构造学习笔记-第十一周
  9. [设计模式]适配器模式
  10. 给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)