Description Description

被省略的一大坨题目无关信息=w=

一开始这些军工厂之间是不存在铁路的

现在总共有 M M 个操作,操作分为两类:

• 00 u u vv,这次操作苏联会修建一条连接 u u 号军工厂及 vv 号军工厂的铁
路,注意铁路都是双向的;
• 1 1 uu v v, ReddingtonReddington 需要知道 u u 号军工厂及 vv 号军工厂最早在加入第几条条铁路后会联通,假如到这次操作都没有联通,则输出 0 0;

InputInput

第一行两个整数 N,M N, M。
接下来 M M 行,每行为 00 u u vv 或 1 1 uu v v 的形式。
数据是经过加密的,对于每次加边或询问,真正的 uu, v v 都等于读入的
uu, v v 异或上上一次询问的答案。一开始这个值为 00。
1≤N,M≤500000 1 ≤ N, M ≤ 500000,解密后的 u u, vv 满足 1≤u,v≤N 1 ≤ u, v ≤ N, u u不等于vv

Output Output

对于每次 1 1 操作,输出 u,vu, v 最早在加入哪条边后会联通,若到这个操
作时还没联通,则输出 0 0。

SolutionSolution

很明显,连通性的判断要用并查集,但是这个路径带有时间,不支持压缩
那么只能按秩合并(即按size)

然后……就没有然后了=w=

#include<stdio.h>
#include<algorithm>
#define N 500001using namespace std;int t,tot,n,m,f[N],s[N],c[N],ans[N],u,v,la,C,T[N];int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n;i++) s[i]=1;while (m--){scanf("%d%d%d",&C,&u,&v);u^=la,v^=la;if (C){t++;ans[u]=c[u];ans[v]=c[v];bool flag=1;for (int lu=0;u;lu=u,u=f[u]) ans[u]=max(c[lu],ans[lu]),T[u]=t;for (int lv=0;v;lv=v,v=f[v]) if (T[v]==t){printf("%d\n",la=max(ans[v],max(c[lv],ans[lv])));flag=0;break;}else ans[v]=max(c[lv],ans[lv]);if (flag) printf("%d\n",la=0);}else{tot++;while (f[u]) u=f[u];while (f[v]) v=f[v];if (u==v) continue;if (s[u]<s[v]) u^=v^=u^=v;s[u]+=s[v];f[v]=u;c[v]=tot;}}
}

【BZOJ】4668 冷战相关推荐

  1. BZOJ 4668 冷战(按秩合并并查集+LCA)

    4668: 冷战 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 627  Solved: 303 [Submit][Status][Discuss] ...

  2. [BZOJ]4668: 冷战

    题解:我们考虑按秩合并  保证每个点往上跳logn层   然后并查集维护就行 #include <algorithm> #include <iostream> #include ...

  3. BZOJ 4668 冷战——并查集+LCA

    基情链接♂BZOJ 1977 严格次小生成树--浅析最近公共祖先(LCA) 目录 一.题目:冷战 1.题目描述 2.输入 3.输出 4.样例输入 5.样例输出 二.题解 三.代码 ​ 谢谢! 一.题目 ...

  4. BZOJ 4668: 冷战

    Time Limit: 10 Sec Memory Limit: 256 MB Submit: 603 Solved: 292 [Submit][Status][Discuss] Descriptio ...

  5. BZOJ 4668 冷战

    Description 1946 年 3 月 5 日,英国前首相温斯顿·丘吉尔在美国富尔顿发表"铁 幕演说",正式拉开了冷战序幕. 美国和苏联同为世界上的"超级大国&qu ...

  6. BZOJ 4668: 冷战 并查集

    Time Limit: 10 Sec Memory Limit: 256 MB Submit: 440 Solved: 215 Description 1946 年 3 月 5 日,英国前首相温斯顿· ...

  7. [ BZOJ 4668 ] 冷战

    \(\\\) \(Description\) 有\(N\)个点,开始没有边相连,进行按顺序给出的\(M\)个操作: \(0\ u\ v\) 将\(u,v\)两点连一条边 \(1\ u\ v\) 查询\ ...

  8. BZOJ 4668: 冷战 并查集暴力LCA(雾)

    利用并查集按秩合并,保存每个点合并的时间: 求时间时,就一直跳u=fa[u],并记录路径上时间的最大值,代表最后一次合并的时间 #include<cstdio> #include<i ...

  9. 【HYSBZ - 4668】 冷战

    黑暗世界的大门 先说说本题的思路. 一看到什么联通啊,查询啊,心里猛地一喜:啊,并查集~~~ 然而,不能用简便方法处理. 1. 用数组存结果再查询a[u][v]表示第一次可以的时间,没什么的,只是会爆 ...

最新文章

  1. 美团实习面试:熟悉红黑树是吧?能不能写一下?
  2. 布线须知:机柜在数据中心机房的三个新用途
  3. android 编写系统应用,Android应用快速开发系统设计与实现
  4. php动态修改配置文件
  5. dreamweaver中的JSP的编程环境配置
  6. C#之获取mp3文件信息
  7. Java中如何生成jar(框架)
  8. ES5-8 闭包高级、对象、构造函数、实例化
  9. java中static作用详解(版本二)
  10. mysql 5.7.10免安装_免安装版mysql5.7.10-16配置教程(2)
  11. Python学习笔记(四)—生成随机数
  12. (html字体图片纯css插件)Font Awesome
  13. VS无法启动程序调试监视器未能启动
  14. win10无法修改mac地址_电脑MAC地址(物理地址)修改方法
  15. 答答星球微信答题小程序头脑王者源码带后台手机app开发排位pk
  16. SkipList 一种使用概率替代平衡树的数据结构
  17. 如何修改背景色?证件照背景颜色怎样换成白色?
  18. 靠卖艺还债:罗永浩的冬天来了!
  19. android 辅助服务默认开启,Android 检测辅助功能是否开启,并调整设置页面
  20. 阴阳师自动御魂觉醒超鬼王脚本

热门文章

  1. 怎么用注册表来删除卸载程序
  2. 比 Elasticsearch 更快 RediSearch + RedisJSON = 王炸
  3. 树莓派自定义分辨率适配带鱼屏(2560*1080)
  4. iPhone访问Ubuntu网络共享文件夹
  5. Spherical Harmonic Lighting(球谐光照)
  6. 单臂路由配置-ZTE中兴交换机
  7. c语言大学教程答案pdf,C++大学教程(第九版) 保罗·戴特尔(Paul Deitel)等著 完整中文pdf扫描版[197MB]...
  8. HDU 6441 Find Integer(数论)
  9. 关于一些数据集的下载链接
  10. centos7密码正确登录失败