cf-Round541-Div2-F(并查集+静态链表)
2024-10-15 15:52:02
题目链接:http://codeforces.com/contest/1131/problem/F
思路:
很容易看出这是一道并查集的题目,因为要输出每个cage中住的鸟的编号,故采用静态链表。用l[i]表示一条链的最左端编号,r[i]表示一条链最右端编号,nex[i]表示编号i后面的鸟的编号,root[i]表示i的祖先,剩下套并查集模板即可。我在这CE了两次,后来问了大神才找到错误,bits/stdc++中已经1定义了get,next,而我的程序中将这两个作为变量,从而CE,但可能是我的编译器的标准库的问题,使得本地可以通过。
代码如下:
#include<bits/stdc++.h>
using namespace std; const int maxn=;
int n,x,y;
int l[maxn],r[maxn],nex[maxn],root[maxn]; int getr(int k){
if(root[k]==k) return k;
else return root[k]=getr(root[k]);
} int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)
l[i]=i,r[i]=i,root[i]=i;
n--;
while(n--){
scanf("%d%d",&x,&y);
int rx=getr(x),ry=getr(y);
root[ry]=rx;
nex[r[rx]]=l[ry];
r[rx]=r[ry];
}
int p=l[getr()];
while(p){
printf("%d ",p);
p=nex[p];
}
printf("\n");
return ;
}
最新文章
- 攻城狮在路上(叁)Linux(零)--- 软件环境、参考书目等一览表
- HTTP基础09--web(1)
- hdu 5269 ZYB loves Xor I
- Git + BeyondCompare
- [转载]CSS教程:实例讲解定位Position
- MyBatis+MySQL 返回插入的主键ID
- percona-toolkit介绍及安装
- ECMAScript6-下一代Javascript标准
- WGZX:javaScript 学习心得--2
- ado.net 基础(一)
- wxPython中添加窗口标题图标
- careercup-数组和字符串1.4
- js判断的执行顺序
- PHP While 循环
- Evaluation of Forwarding Efficiency in NFV-Nodes Toward Predictable Service Chain Performance
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165225
- java枚举类型详解
- Myelipse中xml约束文件的导入(以spring为例)
- 闭合浮动的方法css
- mysql 约束条件介绍