战争来临(并查集模板题)

描述

  那一个骑单车卖报纸的少年 恐慌的眼泪慢慢布满了侧脸……——《战争世界》

  B国对A国发动了侵略战争,A国不得不全力抵御。A国幅员辽阔,后方群众的支援补给通过公路运输到前线,而B国拥有强大的空中力量,不停轰炸着A国的补给线。A国一共有 n 个城市,编号从 1 到 n 。有 m 条双向公路,编号 1 到 m ,第 i 条双向公路连接城市 aᵢ 和 bᵢ (aᵢ≠bᵢ) 。在整个战争的过程中一共发生了 q 个事件。事件有两种,分别按以下形式描述:

  1 x y 表示有一辆载满物资的车从 x 城出发欲驶向 y 城。

  2 x 表示B国的轰炸机破坏了 x 号公路使得该公路无法通行。

  所有的事件按先后顺序依次发生。对于每一个 1 x y 事件,你需要回答载满物资的车是否可以从 x 城经过若干条公路驶到 y 城。

输入

  首先在一行中输入三个正整数 n,m,q (1≤ n ≤1000,0≤ m ≤n(n-1)/2, 1≤ q ≤10⁵) 表示城市、公路、事件的数量。

  随后是 m 行,每行两个整数 aᵢ,bᵢ (1≤aᵢ,bᵢ≤n) 描述一条公路。

  然后是 q 行,每行为1 x y 或 2 x 的形式,含义如上所述。

输出

  对于每一个 1 x y 事件,你需要回答载满物资的车是否可以从 x 城经过若干条公路驶到 y 城。可以则在一行中输出"yes",不可以则在一行中输出"no"(不含双引号)。

输入样例 1

3 3 5
1 2
1 3
2 3
1 1 3
2 3
1 1 3
2 2
1 1 3

输出样例 1

yes
yes
no

思路

  不要想着及时输入,及时输出。
  对于询问,倒着来一遍,就是模板并查集。

代码

#include <iostream>
#include <vector>
#include <stack>
#include <map>
#define ll long long
using namespace std;
ll n, m, k, t, i, j;
ll fa[500010], x[500010], y[500010], a[500010], b[500010], c[500010];
map<ll, ll>mm;
ll fd(ll x) {return fa[x] == x ? x : fa[x] = fd(fa[x]);
}
int main() {while (cin >> n >> m >> k) {mm.clear();for (i = 0; i <= n; i++)fa[i] = i;for (i = 1; i <= m; i++)cin >> x[i] >> y[i];ll a[k + 1], b[k + 1], c[k + 1];for (i = 1; i <= k; i++) {cin >> a[i] >> b[i];if (a[i] == 1)cin >> c[i];else mm[b[i]] = 1;}for (i = 1; i <= m; i++)if (!mm[i])fa[fd(x[i])] = fa[fd(y[i])];stack<string>st;for (i = k; i > 0; i--) {if (a[i] == 1)st.push(fd(b[i]) == fd(c[i]) ? "yes" : "no");else fa[fd(x[b[i]])] = fa[fd(y[b[i]])];}while (!st.empty())cout << st.top() << endl, st.pop();}return 0;
}

战争来临(并查集模板题)相关推荐

  1. 【SCAU 新生赛】18247 aler的旅游计划 并查集模板题

    18247 aler的旅游计划 该题有题解 时间限制:1000MS 代码长度限制:10KB 提交次数:15 通过次数:0 收入:10 题型: 编程题 语言: 不限定 Description aler想 ...

  2. 并查集模板题(stl 中map的运用)

    DongDong认亲戚 DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义:若A和B是亲戚,B和C是亲戚,那么A和C也是亲戚),她只好求助于会编程的 ...

  3. PAT题解-1118. Birds in Forest (25)-(并查集模板题)

    如题... #include <iostream> #include <cstdio> #include <algorithm> #include <stri ...

  4. 【畅通工程 HDU - 1232 】【并查集模板题】

    并查集讲解和模板 有一个博文对此分析的很透彻,附链接 为避免原链接失效,现摘录如下: 为了解释并查集的原理,我将举一个更有爱的例子. 话说江湖上散落着各式各样的大侠,有上千个之多.他们没有什么正当职业 ...

  5. 洛谷P1536村村通(并查集模板题)

    问题出处: https://www.luogu.com.cn/problem/P1536 题目描述: 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府 " ...

  6. POJ1703【Find them, Catch them】(并查集模板题)

    题目地址:POJ1703[Find them, Catch them] 题目描述: Tadu市的警察局决定结束混乱,因此要采取行动,根除城市中的两大帮派:龙帮和蛇帮.然而,警方首先需要确定某个罪犯是属 ...

  7. HDU 1213 How Many Tables(并查集模板)

    http://acm.hdu.edu.cn/showproblem.php?pid=1213 题意: 这个问题的一个重要规则是,如果我告诉你A知道B,B知道C,这意味着A,B,C知道对方,所以他们可以 ...

  8. 强盗团伙(啊哈-并查集[模板])

    题目 快过年了,犯罪分子们也开始为年终奖"奋斗"了,小哼的家乡出现了多次抢劫事件.由于强盗人数过于庞大,作案频繁,警方想查清楚到底有几个犯罪团伙实在是太不容易了,不过警察叔叔还是搜 ...

  9. 【CCCC】L3-003 社交集群 (30分),并查集模板,map排序

    problem L3-003 社交集群 (30分) 当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友.一个"社交集群"是指部分兴趣 ...

最新文章

  1. hal库开启中断关中断_[STM32]HAL库下GPIO按键中断与去抖问题分析(分析源码解决问题)...
  2. php 比较2个数组,比较2个数组中的2个数组值Php
  3. html5新增的type类型,html5新增的type类型
  4. 树莓派apt-get update速度慢的解决方法
  5. 开源项目参与_通过更好的文档吸引更多的项目参与人
  6. 深度学习-吴恩达-笔记-1-深度学习引言
  7. 你知道defer的坑吗?
  8. 为了摸清敌人对自己了解多少,高阶国家黑客组织Turla 决定偷走反病毒日志
  9. Mac 开机慢、反应慢,可清理缓存
  10. VMware虚拟机全屏状态下如何快速切换回原主机界面
  11. uniapp遮罩_APP新手引导遮罩层设计与UI视觉界面设计欣赏
  12. 电视剧《奋斗》精彩对白节选---(三)
  13. 计算机组成原理-I/O系统
  14. 删除Windows服务
  15. 怎么删除桌面右键打开好桌道壁纸
  16. 记一次el-select远程搜索默认数据回显问题
  17. 第十六届中国互联网大会:AI落地才能够发挥价值
  18. 流利阅读 2019.3.5 Your friends’ social media posts are making you spend more money, researchers say
  19. 智慧路灯杆在智慧科技园的应用方案
  20. php clicaptcha,php实现的Captcha验证码类实例

热门文章

  1. CSS3 perspective属性
  2. 在foxmail和outlook中设置QQ邮箱、gmail邮箱、新浪邮箱、微软邮箱、网易邮箱等的方法...
  3. ORA-01109 ORA-28040
  4. VMware Ubuntu虚拟机扩容 value out of range 问题
  5. java 布尔类型_Java的布尔类型基本介绍
  6. k8s-1.23.6高可用部署
  7. Out of Memory ——pycharm内存不足造成软件卡爆
  8. java typedef的用法,typedef
  9. 电影《疯狂的石头》经典台词和评论
  10. AiHiX访谈屠文毅:生命美学与気@新龙门课站+稻.美学馆