BZOJ 3376: [Usaco2004 Open]Cube Stacking 方块游戏
来源:互联网 发布:sql导入 powerdesigner 编辑:程序博客网 时间:2024/06/03 20:10
带权并查集
题目传送门
简单的带权并查集,sum[i]表示i这堆有多少个方块,num[i]表示在i的下面有多少方块。找爸爸时更新即可。
注意查询时需要再空找一次爸爸。
代码:
#include<cstdio>#include<algorithm>#include<cstring>#define MAXN 30000using namespace std;int fa[MAXN+5],num[MAXN+5],sum[MAXN+5];int n;char readc(){ static char buf[100000],*l=buf,*r=buf; if (l==r) r=(l=buf)+fread(buf,1,100000,stdin); if (l==r) return EOF; else return *l++;}inline int _read(){ int num=0; char ch=readc(); while ((ch<'0'||ch>'9')&&ch!='M'&&ch!='C') ch=readc(); if (ch=='M'||ch=='C') return (int)ch; while (ch>='0'&&ch<='9'){ num=num*10+ch-48; ch=readc(); } return num; }int findfather(int x){ if (fa[x]==x) return x; int fat=fa[x]; fa[x]=findfather(fa[x]); num[x]+=num[fat]; return fa[x];}int main(){ n=_read(); for (int i=1;i<=MAXN;i++){ fa[i]=i; sum[i]=1; } while (n--){ int flag=_read(),x=_read(); if (flag=='M'){ int y=_read(); int fx=findfather(x),fy=findfather(y); fa[fx]=fy; num[fx]+=sum[fy]; sum[fy]+=sum[fx]; } if (flag=='C'){ findfather(x); printf("%d\n",num[x]); } } return 0;}
阅读全文
1 0
- BZOJ 3376: [Usaco2004 Open]Cube Stacking 方块游戏
- 3376: [Usaco2004 Open]Cube Stacking 方块游戏
- bzoj3376 [Usaco2004 Open]Cube Stacking 方块游戏
- bzoj 3376: [Usaco2004 Open]Cube Stacking 方块游戏 带权并查集
- bzoj3376/poj1988[Usaco2004 Open]Cube Stacking 方块游戏
- POJ 1988/bzoj3376[Usaco2004 Open]Cube Stacking 方块游戏
- bzoj3376/poj1988[Usaco2004 Open]Cube Stacking 方块游戏 — 带权并查集
- usaco 2004 Open Cube Stacking 堆方块 题解
- Cube Stacking
- Cube Stacking
- Cube Stacking
- Cube Stacking
- Cube Stacking
- Cube Stacking
- Cube Stacking
- Cube Stacking
- Cube Stacking
- Cube Stacking
- POJ 3258 River Hopscotch <二分>
- linux查看glibc版本方法
- 集群扩容DataNode报错:Invalid dfs.datanode.data.dir /data2/hadoop/hdfs/data : EPERM: Operation not permitt
- 电脑启动过程详解
- centos 7.x编写开机启动服务
- BZOJ 3376: [Usaco2004 Open]Cube Stacking 方块游戏
- 信息排序
- hdu 6206 模板题 2017 ACM/ICPC Asia Regional Qingdao Online
- javazygx博客(http://blog.javazygx.cn/)java资源共享博客
- JDK下载
- 1132. Cut Integer (20)
- Xlistv
- 搜狐笔试题——Unix简化路径
- CentOS7安装mysql5.7