目录

题目链接

一些话

流程

套路

ac代码


题目链接

C - Rumor

CodeForces - 893C


一些话

拆解流程的时候没想到res 开long long,但写的时候想到了,一开始还庆幸自己这次这么机灵,结果debug一直de不出错误点,还是靠学长提醒才发现printf没有用%lld。。。

还有一开始用标准find然后tle,以后还是都用路径压缩find好了

自己总结的路径压缩find套路有瑕疵,一直没发现,也是靠学长指点才发现错误。。


流程

父节点数组

值数组

find注意此题卡路径压缩

标准un加一个值比较,小的做父节点

编号1-n,q次关系

fori = 1 I <= n

读入值

whileq--

读入a,b

un(a,b)

while外查询并查集数

cnt改为res ,res += v[i] 注意res要开long long

cout << res < < end; 注意res开long long 后printf参数要改成%lld


套路

1、路径压缩find

条件:并查集必用

形式一:

int find(int x){if(f[x] != x) f[x] = find(f[x];return f[x];
}

形式二:

int find(int x){return f[x] == x ? x : f[x] = find(f[x]);
}

网络上还存在一种很长的形式三仅展示,不推荐使用:

int find(int x)
{int r=x;while(f[r]!=r)r=f[r];int i=x;int j;while(i!=r){j=f[i];f[i]=r;i=j;}return r;
}

ac代码

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int f[N],v[N];
int find(int x){if(f[x] != x) f[x] = find(f[x]);return f[x];
}
void un(int a, int b){int fa = find(a);int fb = find(b);if(fa != fb){if(v[fa] > v[fb]) f[fa] = fb;else f[fb] = fa;}
}
int main(){int n,q;scanf("%d%d",&n,&q);for(int i = 1;i <= n;i++){f[i] = i;scanf("%d",&v[i]);}while(q--){int a, b;scanf("%d%d",&a,&b);un(a,b);}long long res = 0;for(int i = 1 ;i <= n;i++){if(f[i] == i) res += v[i];}printf("%lld",res);return 0;
}

C - Rumor CodeForces - 893C相关推荐

  1. Rumor CodeForces - 893C

    Vova promised himself that he would never play computer games... But recently Firestorm - a well-kno ...

  2. Rumor CodeForces - 893C(并查集)

    Vova promised himself that he would never play computer games- But recently Firestorm - a well-known ...

  3. Rumor CodeForces - 893C(并查集基本操作:维护连通块最值)

    题目链接 PS:这题也可以用dfs搜连通块,一遍搜一遍记录连通块的最值. AC代码: #include <iostream> #include <cstring> #inclu ...

  4. 集训队每周一赛2020-03-13(构造+找规律+字符串+并查集)

    第三次周赛 A 飞 Gym 102416C 题解 B 流 CodeForces 1316B 题解 C 直 Gym 102535G 题解 D 下 CodeForces 1312C 题解 E 三 Code ...

  5. XUPT_STA2018(部分题解)

    A - 一方通行和最大公约数I     CodeForces - 664A 作为学园都市最强的lv5,一方通行必须解决一道数学题才能接触last order身上植入的病毒,请你帮他解决这个问题. 给出 ...

  6. Educational Codeforces Round 33 (Rated for Div. 2)C.Rumor并查集

    Educational Codeforces Round 33 (Rated for Div. 2)C.Rumor并查集 题意:首先用并查集把N个人分成几块,然后每个块当中选取一个最小权值 加到答案中 ...

  7. Codeforces 题目合集+分类+代码 【Updating...】【361 in total】

    961A - Tetris                                                模拟                                      ...

  8. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  9. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

最新文章

  1. 浅谈 Math.BigMul 方法
  2. java 解析注解_Java知识点总结(注解-解析注解)
  3. nginx在linux reload报错,linux下安装nginx
  4. Android JNI入门第一篇——HelloJni
  5. 大厂提供什么样的软硬件来吸引人才?
  6. QT Creator应用程序开发——01简单按钮显示
  7. 2005/7/15[随便写写]
  8. Android Bitmap OutOfMemory 解决办法
  9. 程序猿必备工具『CSDN浏览器助手』之超实用小工具测评
  10. 终于我还是放手了, 但是只想说,暂别 Aptana Studio 3,Phpstorm来吧!(附:个人遇到的小问题的解决方法)...
  11. python画二维图_使用python绘制二维图形示例
  12. c++篇 vc++2010设置和c#一样的代码段,vs2010 两下tab设置
  13. 记腾讯一面 | 掘金技术征文
  14. Leetcode 109.有序链表转换二叉搜索树
  15. java打印特殊符号_Java Poi 在Excel中输出特殊符号的实现方法
  16. VMware Workstation12安装win 7企业版激活
  17. 重装win10系统后不能上网如何解决?
  18. html5+css3实现2D动画效果演示
  19. 所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
  20. 微信小程序十二时辰时钟

热门文章

  1. Android Studio使用碰到报错问题记录
  2. java语言程序设计第二版课后答案吴倩_Java语言程序设计
  3. 支付宝收费惊呆小伙伴:都是微信给逼的
  4. APT级全面免杀拿Shell
  5. 不到一百行python代码简单实现A星算法
  6. 内存是手游的硬伤——Unity游戏Mono内存管理与泄漏
  7. 机器学习: t-Stochastic Neighbor Embedding 降维算法 (二)
  8. 防封号的原理是什么?怎样做到防封号?
  9. 【笔试or面试】人人2014校园招聘笔试题(广州站)
  10. 华三WiFi控制器内远程telnetAP