当前位置: 首页 > news >正文

P6706 [COCI 2010/2011 #7] KUGLICE

洛谷

由于每一个节点最多只会连出一条边,所以一个连通的图必定是基环树或者树。

如果是基环树,那么一定会有环,且经过移动后必定在环内,直接按照有环的情况输出即可。

对于一颗树,我们可以将这一个节点连向的点视为父亲,那么最后的答案就是这棵树的根。

我们可以通过并查集来模拟建树的过程,但是拆树的过程并不好模拟,怎么办?

我们可以考虑离线操作,要拆掉的边先不连接,反过来处理就成为了建边的过程。

剩下的就是对并查集建树以及判断是否有环的简单运用了,这里就不过多说明了,可以自己看代码。

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,a[300005],b[300005],fa[300005];
int find(int x){if(x==fa[x])return x;return fa[x]=find(fa[x]);
}
bool merge(int x,int y){y=find(y);if(y==x)return false;fa[x]=y;return true;
}
bool f[300005];
struct Q{int op,x,res;
}q[300005];
signed main(){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=n;i++)b[i]=a[i];cin>>m;for(int i=1;i<=m;i++)cin>>q[i].op>>q[i].x;for(int i=1;i<=m;i++){if(q[i].op==2){b[q[i].x]=0;}}for(int i=1;i<=n;i++)fa[i]=i;for(int i=1;i<=n;i++){if(!b[i])continue;if(!merge(i,b[i]))f[i]=1;}for(int i=m;i>=1;i--){if(q[i].op==1){int tmp=find(q[i].x);if(f[tmp])q[i].res=-1;else q[i].res=tmp;}else {if(!merge(q[i].x,a[q[i].x]))f[q[i].x]=1;}}for(int i=1;i<=m;i++){if(q[i].op==1){if(q[i].res==-1)puts("CIKLUS");else cout<<q[i].res<<endl;}}return 0;
}
http://www.jsqmd.com/news/65236/

相关文章:

  • P3596 [POI 2015 R3] 高速公路现代化 Highway modernization
  • AT_arc179_d [ARC179D] Portable Gate
  • AI Browser:我用 CC 做了个桌面版 Manus
  • P3576 [POI 2014] MRO-Ant colony
  • flink 1.20 物化表(Materialized Tables) - 详解
  • P4953 [USACO02FEB] Cow Cycling
  • CF700B Connecting Universities
  • 克服EMD端点效应的齿轮箱故障特征识别方法
  • 大模型算法学习
  • Linux——网络命令和常用服务 - 指南
  • 用 GitHub issue 寫博客很好,但我要放棄了
  • P11580 [CCC2020] Escape Room
  • 北京上门回收名家字画 专访北京丰宝斋负责人徐亚南
  • 用 Astro 重做網站這件事
  • 周边的车间厂房工厂通风降温工业冷风机源头厂家,有热源的车间通风降温/铁皮厂房车间降温/铁皮房车间厂房降温工业冷风机供应商有哪些
  • P6875 [COCI2013-2014#6] KRUŽNICE
  • 美化 BroadcastChannel
  • 2025最新绿色低碳工厂建设五大服务商/厂家推荐!工业智能化升级权威指南,助力企业实现双碳目标与高效生产
  • P6000 [CEOI2016] match
  • MultiButton移植记录
  • Hugging Face 论文页面功能指南
  • 北京上门回收老酒名酒茅台五粮液
  • P5202 [USACO19JAN] Redistricting P
  • 详细介绍:数据结构5:二叉树
  • Excel 公式
  • P10602 [CEOI 2009] Harbingers
  • 2025 Newest Autel BMW G-Chassis IMMO Add Key (1-Year License) for IM508/IM608/IM1/IM2
  • Go 1.25 发布:性能、器具与生态的全面进化
  • P6173 [USACO16FEB] Circular Barn P
  • 为数字文明奠基:论通译院-价值星图-叙事舞台架构作为价值实践的元操作系统