题目链接: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 ;
}

cf-Round541-Div2-F(并查集+静态链表)的更多相关文章

  1. cf 442 div2 F. Ann and Books(莫队算法)

    cf 442 div2 F. Ann and Books(莫队算法) 题意: \(给出n和k,和a_i,sum_i表示前i个数的和,有q个查询[l,r]\) 每次查询区间\([l,r]内有多少对(i, ...

  2. [CF Round603 Div2 F]Economic Difficulties

    题目:Economic Difficulties 传送门:https://codeforces.com/contest/1263/problem/F 题意:给了两棵tree:Ta(拥有a个节点,节点编 ...

  3. F. Asya And Kittens 并查集维护链表

    reference :https://www.cnblogs.com/ZERO-/p/10426473.html

  4. CF R638 div2 F Phoenix and Memory 贪心 线段树 构造 Hall定理

    LINK:Phoenix and Memory 这场比赛标题好评 都是以凤凰这个单词开头的 有凤来仪吧. 其实和Hall定理关系不大. 不过这个定理有的时候会由于 先简述一下. 对于一张二分图 左边集 ...

  5. 2019牛客第八场多校 E_Explorer 可撤销并查集(栈)+线段树

    目录 题意: 分析: @(2019牛客暑期多校训练营(第八场)E_Explorer) 题意: 链接 题目类似:CF366D,Gym101652T 本题给你\(n(100000)\)个点\(m(1000 ...

  6. 谈一谈并查集QAQ(上)

    最近几日理了理学过的很多oi知识...发现不知不觉就有很多的知识忘记了... 在聊聊并查集的时候顺便当作巩固吧.... 什么是并查集呢? ( Union Find Set ) 是一种用于处理分离集合的 ...

  7. codeforces 1023 D. Array Restoration 并查集

    D. Array Restoration time limit per test 1 second memory limit per test 256 megabytes input standard ...

  8. Luogu P2391 白雪皑皑 && BZOJ 2054: 疯狂的馒头 并查集

    4月的时候在luogu上做过 白雪皑皑 这道题,当时一遍AC可高兴了qwq,后来去了个厕所,路上忽然发现自己的做法是错的qwq...然后就咕咕了qwq 今天看到了 疯狂的馒头 ,发现一毛一样OvO.. ...

  9. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

随机推荐

  1. [UE4]OnComponentBeginOverlap.AddDynamic 的编译错误

    以 Character 类为例,假设有 PacManCharacter 派生自 Character类首先在 PacManCharacter.h 头文件中添加碰撞函数的声明: OnCollision 为 ...

  2. Eclipse中安装及配置EGit插件

    转载:https://jingyan.baidu.com/article/59703552dcc5ad8fc107407e.html

  3. C++ 无锁队列实现

    上源码 #ifndef __GLOBAL_LOCK_FREE_QUEUE_H__ #define __GLOBAL_LOCK_FREE_QUEUE_H__ #include <atomic> ...

  4. express有中间件的增删改查

    var express = require('express');引入express框架 var router = express.Router();引入router路由级中间件 var data = ...

  5. js基础和运算符

    1.什么JavaScript?    运行环境 :    浏览器                    是一种具有安全性的客户端的脚本语言     用来实现与web页面交互 脚本语言:语言嵌入到htm ...

  6. SpringJdbc之queryForXXX大全解读

      一.查询单个字段  Object queryForObject(String sql, Object[] args, Class requiredType)  其中Class requiredTy ...

  7. QT中使用自己定的类和Vector出现错误

    关于QT自定义类不能调用问题: 在Main()函数里面一定要定义include“XXX.cpp”include“XXX.h”,具体原因我也不知道为什么这样定义,是在一个贴吧看见的,弄了好久才解决. 第 ...

  8. 自定义BeanUtils

    package com.icil.booking.service.util; import java.math.BigDecimal; import java.text.ParseException; ...

  9. sftp(paramiko)

    SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的.但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用S ...

  10. c#之using关键字

    1.using可以引入命名空间: 2.在using语句里声明的变量,使用完后会自动调用Dispose方法(实现IDisposable接口). using 语句允许程序员指定使用资源的对象应当何时释放资 ...