.

G题


题意:每一次q,只要a团b团相邻,就将其合并

开一个vector维护每个团内的点和相邻的点的信息,用并查集维护每个点的所属团,每次将ooo统领与和它相邻的团合并

做法就对于每一个跟ooo团相邻的点(属于ooo团的点直接跳过),遍历所有属于这个点的祖先的边将其团内所有的点和ooo团相连即可

#include<bits/stdc++.h>
using namespace std;
const int maxm=8e5+5;
vector<int>e[maxm];
int n,m;
int f[maxm];
int find(int x){return f[x]==x?x:f[x]=find(f[x]);
}
void hb(vector<int>&x,vector<int>&y){if(x.size()<y.size())swap(x,y);for(int u:y)x.push_back(u);
}
int main(){int t;cin>>t;while(t--){scanf("%d%d",&n,&m);for(int i=0;i<n;i++){f[i]=i;e[i].clear();}for(int i=1;i<=m;i++){int u,v;scanf("%d%d",&u,&v);e[u].push_back(v);e[v].push_back(u);}int q;scanf("%d",&q);int o;while(q--){scanf("%d",&o);if(find(o)!=o)continue;vector<int>now=e[o];e[o].clear();for(auto v:now){int fv=find(v);if(fv==o)continue;hb(e[o],e[fv]);f[fv]=o;}}for(int i=0;i<n;i++){printf("%d ",find(i));}puts("");}return 0;
}

2020牛客多校训练3 G Operating on a Graph(并查集+链式结构)相关推荐

  1. 2020 牛客多校第一场

    2020 牛客多校第一场 A. B-Suffix Array 后缀数组的思想:倍增+桶排序的方式找出一串连续序列后缀的大小.虽说正常使用的时候都是字典序,但是只要修改排序方式,也能够达到一个类似的&q ...

  2. 2019牛客多校训练第十场F Popping Balloons

    2019牛客多校训练第十场F Popping Balloons 题意:二维平面内给你若干个点,然后你可以在x轴和y轴分别射三枪(每一枪的间隔是R),问最多能射掉多少气球. 题解:贪心.这个应该只能算作 ...

  3. 2020牛客多校 J Easy Integration 计算过程详解【点火公式(Wallis积分)+组合数学】

    2020牛客暑期多校训练营(第一场) J Easy Integration 题 网上题解大多是 不断分部积分求解,其实有更为简洁的解法. 便是 Wallis积分(点火公式) + 组合数学 求解,本文给 ...

  4. [2019牛客多校训练第3场]Median

    链接:https://ac.nowcoder.com/acm/contest/883/I 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  5. 【牛客 - 1080B】tokitsukaze and Hash Table(STLset,并查集,Hash)

    题干: 链接:https://ac.nowcoder.com/acm/contest/1080/B 来源:牛客网 tokitsukaze有n个数,需要按顺序把他们插入哈希表中,哈希表的位置为0到n-1 ...

  6. 2020牛客多校G[并查集的两种思想,按秩合并+路径压缩]

    题目链接 题目大意:就是有n个点m条边,每次第i个点属于第i个联通块,现在有q次询问给你一个数o,如果o这个联通块没有相连的联通块就没什么事情发生,如果有的话,就将这几个点的联通块都并入o所在的联通块 ...

  7. 2020牛客多校第1场H-Minimum-cost Flow

    解题思路: 首先我们要从费用流mcmf的算法入手:因为它每次增广是再费用增广路上跑的,根据贪心的思想费用小的路基本上能运多少就尽量运多少,所以我们可以假设初始的边容量是1,只跑一遍mcmf.记录一下每 ...

  8. exgcd ---- 2020牛客多校第三场:[Fraction Construction Problem:exgcd+思维题]

    题目链接 题目大意:就是给你两个数a,ba,ba,b叫你求满足下面三个条件的c,d,e,fc,d,e,fc,d,e,f 1.cd−ef=ab1.{c\over d}-{e\over f}={a\ove ...

  9. 2020牛客多校第1场I-1 or 2一般图最大匹配带花树

    链接:https://ac.nowcoder.com/acm/contest/5666/I Bobo has a graph with n vertices and m edges where the ...

  10. 2020牛客多校第1场H-Minimum-cost Flow-最小费用流

    https://ac.nowcoder.com/acm/contest/5666/H 题目大意:给出了每一条边的费用,有q个询问,问当每一条边的容量为u/v时,通过1流量的最小费用是多少. 思路:很明 ...

最新文章

  1. 用于RGB-D显著目标检测的自监督表示学习
  2. 偏移shaderuv_Unity Shader UV平移、旋转、缩放效果
  3. windows 7 睡眠和休眠的区别
  4. .Net Core 之 Ubuntu 14.04 部署过程
  5. 创建自己的github_创建自己的GitHub(kinda)
  6. 本地项目添加到远程仓库
  7. html5 ul下的li重叠解决,html – 如何仅在嵌套的ul中悬停当前的li?
  8. 喝酒的规矩(是男人必看必顶,女人可不看直接顶)
  9. CodeForces 670C Cinema
  10. Android Weekly Notes Issue #232
  11. 编程之美1.7 光影切割问题
  12. 导出表钩子之EAT HOOK解析
  13. help efun matlab,Matlab优化工具箱在函数最值求解中的应用.pdf
  14. python棋盘格_python实现张正友棋盘格标定法
  15. 关于区块链在存证方面的应用
  16. 【目标检测】目标检测的评价指标(七个)
  17. 《金字塔原理》读书思维导图
  18. Word题注带一级标题,由图一.1变为图1.1
  19. arm linux死机不是崩溃,用sysrq-trigger实现ARM Linux一键内核崩溃、一键关机、一键dump信息等...
  20. 【集合论】划分 ( 划分 | 划分示例 | 划分与等价关系 )

热门文章

  1. 宝塔控制面板忘记密码怎么找回?
  2. 某游戏中有轰炸机、直升机、重型坦克、轻型坦克、飞行兵、步兵等六大兵种
  3. 配置百度云CDN加速
  4. 李华上大学了吗?(I)
  5. 现金支票打印模板excel_好用的支票打印软件
  6. pap认证失败_PPP 口令认证协议 (PAP) 的配置与故障排除
  7. typedef 与结构体struct
  8. c++时间类型详解 time_t
  9. python dict遍历_Python专题——详解enumerate与zip用法
  10. 【HDU1284 中南林业大学第十一届校赛 B:】兑换零钱(dp)