码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces 1131F Asya And Kittens 【并查集】

时间:2019-02-24 21:30:40      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:其它   color   利用   main   div   2-2   target   bsp   span   

<题目链接>

题目大意:
有$1~n$只小猫,开始将它们放在指定的n个单元格内,然后随机从n-1个隔板中拆除隔板,最终使得这些小猫在同一单元格。现在依次给出拆除隔板的顺序,比如:1 4 就表示1号和4号小猫之间的隔板会被拆除(注:只能拆除相邻区域小猫之间的隔板)。

解题分析:
利用并查集处理,$nxt[i]$ 表示 $i$ 之后的小猫序号, $mxri[i]$表示以第$i$个小猫已确定区域的最右端(方便其它小猫接入)。

#include <bits/stdc++.h>
using namespace std;

#define N int(2e5+7)
#define rep(i,s,t) for(int i=s;i<=t;i++)
int n;
int nxt[N],fa[N],mxri[N];
int find(int x){ return x==fa[x]?x:fa[x]=find(fa[x]); }
int main(){
    scanf("%d",&n);
    rep(i,1,n)fa[i]=i,mxri[i]=i;
    rep(i,1,n-1){
        int x,y;scanf("%d%d",&x,&y);
        x=find(x),y=find(y);
        nxt[mxri[x]]=y;   //将y接在x最右边的元素右边
        mxri[x]=mxri[y];    //将y所连着的元素一块接上
        fa[y]=x;
    }
    for(int i=find(1);i;i=nxt[i])printf("%d ",i);
}

 

 

2019-02-24

Codeforces 1131F Asya And Kittens 【并查集】

标签:其它   color   利用   main   div   2-2   target   bsp   span   

原文地址:https://www.cnblogs.com/00isok/p/10427936.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!