题目链接:点击打开链接

思路:

由于我们对删除边之后的状态很难处理, 我们可以考虑对询问倒着处理, 转化成对集合的合并问题。

细节参见代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <ctime>
#include <bitset>
#include <cstdlib>
#include <cmath>
#include <set>
#include <list>
#include <deque>
#include <map>
#include <queue>
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;
typedef long long ll;
typedef long double ld;
const double eps = 1e-6;
const double PI = acos(-1);
const int mod = 1000000000 + 7;
const int INF = 0x3f3f3f3f;
const int maxn = 1e5 + 10;
int T,n,m,q,p[maxn],vis[maxn],u[maxn],v[maxn],op[maxn];
int _find(int x) { return p[x] == x ? x : p[x] = _find(p[x]); }
int main() {while(~scanf("%d%d",&n, &m)) {for(int i = 1; i <= m; i++) {scanf("%d%d", &u[i], &v[i]);vis[i] = 0;}scanf("%d", &q);for(int i = 1; i <= q; i++) {scanf("%d", &op[i]);vis[op[i]] = 1;}for(int i = 1; i <= n; i++) p[i] = i;int ans = n;for(int i = 1; i <= m; i++) {if(vis[i]) continue;int x = _find(u[i]);int y = _find(v[i]);if(x != y) p[x] = y, --ans;}vector<int> res;for(int i = q; i >= 1; i--) {res.push_back(ans);int id = op[i];int x = _find(u[id]);int y = _find(v[id]);if(x != y) {p[x] = y;--ans;}}for(int i = q-1; i >= 0; i--) {printf("%d%c", res[i], i == 0 ? '\n' : ' ');}}return 0;
}

Ural 1671. Anansi's Cobweb(并查集)相关推荐

  1. URAL 1671 Anansi's Cobweb (并查集)

    一道思维题. 传送门:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20482 题意: 有一张无向图.给Q次删边操作,问每次操 ...

  2. Ural1671 Anansi's Cobweb 并查集

    倒着来 水题 1671. Anansi's Cobweb Time limit: 1.0 second Memory limit: 64 MB Usatiy-Polosatiy XIII decide ...

  3. Ural 1671 - Anansi's Cobweb 倒过来做...并查集维护..

    题意: 给出一个无向图..然后不断的删边..问每次删边后..整个图是由几个联通块组成的.... 题解: 以前做过一个题..是CF上面的...是不断的删边..并询问某两点的最短路..当时的方法是倒过来. ...

  4. Ural 1671. Anansi's Cobweb

    PRO IS HERE Union_Find set: 并查集. 注意我们从后往前加边,离线算法. 如果有某条边删除两次以上,只保留较早的那个删除操作,实现时用vis判断. CODE: #includ ...

  5. Ural_1671. Anansi's Cobweb(并查集)

    /*思路参考大牛,我脑袋被lv踢了,居然想到用数状数组写...思路:并查集,先把不许要删的边用并查集合并,然后把需要删的边逆序加入到并查集中.... My Code:*/ #include <i ...

  6. ural 1671 Anansi's Cobweb

    这道题是并差集的简单应用 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #de ...

  7. 1671. Anansi's Cobweb(并查集)

    1671 并查集 对于询问删除边之后的连通块 可以倒着加边 最后再倒序输出 1 #include <iostream> 2 #include<cstdio> 3 #includ ...

  8. URAL 1682 Crazy Professor (并查集)

    [题目链接] http://acm.timus.ru/problem.aspx?space=1&num=1682 [题目大意] 给出k,从1开始不断地加一并把这个数写在黑板上,如果写上的数字和 ...

  9. URAL 1982. Electrification Plan(并查集)

    题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1982 Some country has n cities. The government ...

最新文章

  1. Oracle的FIXED_DATE参数
  2. envi 文件 生成mat_JVM 内存分析工具 MAT 的深度讲解与实践——入门篇
  3. 在类别无法直接使用的一些对象或方法
  4. HDCMS导航高亮显示!解决办法
  5. 学习RUNOOB.COM进度一
  6. 池化层在全连接层之间吗,了解最大池化层之后的全连接层的尺寸
  7. c99什么意思_C语言中-是什么意思啊?
  8. python迭代器_Python迭代器
  9. 深入浅出Linux操作系统虚拟机环境下载安装(一)
  10. 使用 URPF 来阻止IP地址欺骗( IP Address Spoofing)
  11. OpenCV/Python/dlib眨眼检测
  12. C++图书管理系统及相应文件的创建与输出
  13. 长沙举办智慧城市供应链沙龙
  14. 软件测试的起源和发展、流程 笔记
  15. java:不支持发行版本5
  16. 3-对链家二手房数据进行预处理,以及利用CNN进行多分类操作
  17. php avi格式播放,Linux_网页播放器代码全集,1.avi格式代码片断如下:obje - phpStudy...
  18. 京东APP地址加密的浅分析
  19. 文档 IT公司组网,网络布局要考虑周全(图)
  20. 两化融合贯标补贴!湖北省13市两化融合贯标补贴补助及申请条件、流程汇编大全

热门文章

  1. 3dsmax修改对象的旋转中心的位置
  2. python中让输出不换行
  3. 一些计算机模拟人脑项目
  4. 最简单Unity 连招入门--只有20行代码
  5. MATLAB之心形图绘制
  6. precision 为什么和recall成反比
  7. 阿里arouter框架使用
  8. NetWorker Pro for Mac (菜单栏网速监测显示工具) v8.11
  9. 模拟鼠标键盘操作,含硬件模拟技术
  10. RuntimeError: Output 0 of SelectBackward is a view and is being modified inplace.