题目大意

一个 n n个点的图,一开始没有任何边。要求在线支持mm个操作:
∙ link(u,v) \bullet\ link(u,v)连接 (u,v) (u,v)
∙ query(u,v) \bullet\ query(u,v)查询点对 (u,v) (u,v)最早在那一条边插入时联通

1≤n,m≤5×105 1\le n,m\le 5\times10^5


题目分析

LCT \mathrm{LCT}? Splay Splay常数过大,只能拿80分。
满分做法并查集按秩合并:不采用路径压缩,而将深度小的合并到深度大的哪里,这样每次只有在两者深度相同时,最大深度才会 +1 +1,因此并查集深度始终是 log2n log_2n的。记录每个点到父亲节点最早什么时候联通,查询的时候直接跳就好了。
时间复杂度 O(mlog2n) \mathrm O(mlog_2n)。


代码实现

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cctype>using namespace std;int read()
{int x=0,f=1;char ch=getchar();while (!isdigit(ch)) f=ch=='-'?-1:f,ch=getchar();while (isdigit(ch)) x=x*10+ch-'0',ch=getchar();return x*f;
}const int N=500050;int fa[N],d[N],t[N];
int ans,n,m,cnt;
bool vis[N];int query(int x,int y)
{int lca,z,ret=0;for (z=x;z;z=fa[z]) vis[z]=true;for (z=y;z&&!vis[z];) z=fa[z];if (z){for (lca=z,z=x;z!=lca;z=fa[z]) ret=max(ret,t[z]);for (z=y;z!=lca;z=fa[z]) ret=max(ret,t[z]);}for (z=x;z;z=fa[z]) vis[z]=false;return ret;
}void link(int x,int y,int id)
{int fx,fy,z;for (z=x;z;z=fa[z]) fx=z;for (z=y;z;z=fa[z]) fy=z;if (fx==fy) return;if (d[fx]<d[fy]) swap(fx,fy);fa[fy]=fx,t[fy]=id,d[fx]=max(d[fx],d[fy]+1);
}int main()
{freopen("coldwar.in","r",stdin),freopen("coldwar.out","w",stdout);n=read(),m=read();for (int i=1;i<=n;i++) d[i]=1;ans=0;for (int i=1,op,u,v;i<=m;i++){op=read(),u=read(),v=read();u^=ans,v^=ans;if (op) printf("%d\n",ans=query(u,v));else link(u,v,++cnt);}fclose(stdin),fclose(stdout);return 0;
}

[JZOJ4588]冷战相关推荐

  1. 李开复对话彭特兰:AI不是单打独斗,应避免AI冷战

    近日,创新工场董事长兼CEO李开复博士与阿莱克斯·彭特兰教授(Alex Pentland)展开了一场"AI如何重塑人类社会"的精彩对话.<连线>杂志的资深撰稿人威尔·奈 ...

  2. 李开复对话彭特兰:AI 不是单打独斗,应避免 AI 冷战!

    来源:CSDN 近日,创新工场董事长兼CEO李开复博士与阿莱克斯·彭特兰教授(Alex Pentland)展开了一场"AI如何重塑人类社会"的精彩对话.<连线>杂志的资 ...

  3. BZOJ4668: 冷战 [并查集 按秩合并]

    BZOJ4668: 冷战 题意: 给定 n 个点的图.动态的往图中加边,并且询问某两个点最早什 么时候联通,强制在线. 还可以这样乱搞 并查集按秩合并的好处: 深度不会超过\(O(\log n)\) ...

  4. bzoj4668 冷战

    冷战 Time Limit: 10 Sec Memory Limit: 256 MB Description 1946 年 3 月 5 日,英国前首相温斯顿·丘吉尔在美国富尔顿发表"铁 幕演 ...

  5. swiper如何防止冲突_冲突管理:化冲突为机会的8个谈话技巧,从此告别争吵和冷战...

    书语人间:每天10分钟,读懂1本好书,点击文章右边的「关注」,一起成长 大家好呀~ 今天,灵遥将继续为你带来<解决冲突的关键技巧:如何增加你的有效社交>一书的共读. 上一篇里,我们读到了让 ...

  6. 【BZOJ4668】冷战 并查集

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

  7. 从冷战到深度学习,一文看懂机器翻译发展史

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! CSDN编者友情提示:完成本篇阅读至少需要消耗一周能量,请提前收藏~~~ 图片来源于网络 通 ...

  8. 冷战与战后东亚国际秩序:影响及后果

    本文的目的是从较长时段的历史中观察冷战时代东亚地区国际秩序的兴起.演变及其对当今地区和全球政治的影响.本文认为冷战时代的东亚秩序经历过一次巨大的变革,即从美苏同盟对抗与冲突为中心,逐步转向全面抵抗苏联 ...

  9. 冷战——婚姻生活的双刃剑

    对于很多夫妻而言,两人发生冲突时,最直接的发泄方式并不是"厮杀",而是展开冷战.当两人有了矛盾,一方率先摆出一副"我以后再也不理你"的姿态,同时另一方心想&qu ...

最新文章

  1. Drawable的Tint变色(让Android也能有iOS那么方便的图片色调转换)
  2. OpenStack 业务链networking-sfc介绍 (2) - 底层原理
  3. Django 无法加载静态文件(js,css,image)解决办法
  4. python好学-所有人都说Python 简单易学,为何你觉得难?
  5. Java有趣的小功能_Java8 中有趣酷炫的小技巧你用到了那些
  6. XTU -1231 人生成就 (dp + 记录最优解的个数)
  7. libdvbpsi源码分析(三)PSI decocder详细分析
  8. 记一次MySQL手工注入
  9. Invisor for Mac(媒体文件检查工具)v3.14免激活版
  10. TeamViewer中一些按钮的功能
  11. Kubernetes基于EFK进行统一的日志管理方案
  12. 台式电脑开机一直卡在正在启动windows怎么办
  13. 小程序的框架研究报告(开发框架、UI框架)
  14. 免费的国内代理服务器、国内代理IP地址
  15. [洛谷P4492] [HAOI2018]苹果树
  16. 浏览器劫持定义及危害、处理浏览器被劫持自动跳转到某个网页的修复教程
  17. Fortunate Finds
  18. 基于MatLab实现LSB(最低有效位)算法完成图片数字水印隐写功能
  19. 程序员的呐喊--读书感悟
  20. 计算机绘制函数的应用,信息技术应用用计算机绘制函数图象 (4).pptx

热门文章

  1. 解决VM虚拟机连不上网络的问题
  2. 海信98E7G PRO 98英寸 评测
  3. 掌握动效设计!让你的设计富有未来科技感(上)
  4. android 平板的 dpi,Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸...
  5. 熤星传媒:抖音这些方面要注意!
  6. 刚开始投资黄金理财,怎么扩大自己的小金库
  7. 杂志风城市夜景PPT模板
  8. 甲骨文中间件与主数据管理平台
  9. 解读物联网八大环节供应链(附13大电子行业产业链全景图)
  10. 坐标转换 | EXCEL中WGS84转GCJ02,并在地图上标注