Cube Stack
Cube Stack
有一点lazy思想,设三个数组cnt代表它以下的有多少个元素(直到栈底),top[x]代表x所在栈的栈顶元素,dad[x]代表x所在栈的栈底元素,先寻找父亲,然后递归更新累加cnt,找父亲的时候更新cnt,对于一个元素,再用之前一定要找父亲,这样才会是真的cnt。
#include<iostream>
#include<cstdio>
using namespace std; int top[],cnt[],dad[]; int p; void Cin(int &x)
{
char c=getchar();x=;
while(c<''||c>'')c=getchar();
while(c<=''&&c>='')x=x*+c-'',c=getchar();
} void Cout(int x)
{
if(x>) Cout(x/);
putchar(x%+'');
} int getfather(int x)
{
if(dad[x]==x)
return x;
int f=dad[x];
dad[x]=getfather(dad[x]);
cnt[x]+=cnt[f];
return dad[x];
} void merge(int x,int y)
{
int F=getfather(x);
int f=getfather(y);
if(F!=f)
{
dad[F]=f;
int t=getfather(top[f]);
cnt[F]=cnt[top[f]]+;
top[f]=top[F];
}
} int main()
{
for(int i=;i<=;i++)
{
dad[i]=i;
top[i]=i;
}
cin>>p;
char c;
int x,y;
for(int i=;i<=p;i++)
{
cin>>c;
if(c=='M')
{
Cin(x),Cin(y);
merge(x,y);
}
else
{
cin>>x;
int t=getfather(x);
Cout(cnt[x]),putchar('\n');
}
}
return ;
}
Cube Stack的更多相关文章
- Day 2 下午
[POJ 3468]A Simple Problem with Integers给定Q个数A1, ..., AQ,多次进行以下操作:1.对区间[L, R]中的每个数都加n.2.求某个区间[L, R]中 ...
- poj.1988.Cube Stacking(并查集)
Cube Stacking Time Limit:2000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64u Submi ...
- POJ 1988 Cube Stacking(带权并查集)
Cube Stacking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 23678 Accepted: 8299 Ca ...
- Cube Stacking
Cube Stacking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 21350 Accepted: 7470 Case T ...
- cdoj 80 Cube 水题
Cube Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/80 Descrip ...
- 【HDOJ】4801 Pocket Cube 的几种解法和优化
1. 题目描述给定一个$2 \times 2 \times 2$的魔方,当某个面上的4个小块颜色均相同时,称这个面为complete.求对这个魔方进行$n \in [1,7]$次旋转(沿某个面顺时针或 ...
- PKU Online Judge 1054:Cube (设置根节点)
1054:Cube 总时间限制: 1000ms 内存限制: 131072kB 描述 Delayyy君很喜欢玩某个由Picks编写的方块游戏,游戏在一个由单位格组成的棋盘上进行. 游戏的主角是一 ...
- 【POJ 1988】 Cube Stacking (带权并查集)
Cube Stacking Description Farmer John and Betsy are playing a game with N (1 <= N <= 30,000)id ...
- Cube Stacking(并差集深度+结点个数)
Cube Stacking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 21567 Accepted: 7554 Ca ...
随机推荐
- PhoneUtil
package cn.fraudmetrix.octopus.horai.biz.utils; import org.springframework.util.StringUtils; import ...
- PMM安装-第一篇
一 简介 今天来聊聊 PMM安装使用 二 安装 1 server端执行 curl -sSL https://get.daocloud.io/docker | sh docker pull p ...
- Bootstrap模态框(一个页面显示多个)的使用
在一个页面显示多个模态框时要讲每个模态框用div包裹起来,否咋会产生格式错误. <html> <head> <meta charset="utf-8" ...
- Modelsim SE 破解教程
第一步:打开我们提供的破解工具包. 第二步:拷贝crack.bat和MentorKG.exe到"C:\modeltech64_10.2c\win64"路径下,如果你的电脑为32位, ...
- v4l2功能列表大全【转】
一,功能参考 目录 V4L2 close() - 关闭一个V4L2设备 V4L2 ioctl() - 创建的V4L2设备 ioctl VIDIOC_CROPCAP - 视频裁剪和缩放功能信息 ioct ...
- WiFi基本知识【转】
转自:http://blog.csdn.net/myarrow/article/details/7930131 1. IE802.11简介 标准号 IEEE 802.11b IEEE 802.11a ...
- PhantomJSのメモいろいろ
提供されるモジュール群は5つ phantom: そのもの FileSystem: ファイルに出力したり.依存ファイルの存在確認したり System: コマンドラインから引数取りたいなら WebPage ...
- Python3学习笔记08-tuple
元组与列表类似,不同之处在于元组的元素不能修改 元组使用小括号,列表使用方括号 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 tup1 = ('Google', 'Runoob', 19 ...
- CentOS6.3重新加载网卡报错 Active connection path: /org/freedesktop/NetworkManager/ActiveConnection
现象系统无法上网,ping本地127.0.0.1不通,局域网IP也不通,网关也无法ping通 通过 ifconfig 查看网卡和lo回环口 都已启用 重启network服务报错如下: # servic ...
- Day5-----------------------系统监控
1.top 命令 查看终端信息 who 显示终端用户有哪些 bash 开启终端进程 PID:进程身份证 buffer:缓冲区 cache:高速缓存 进程:动起来的文件,CPU调用运行的过程 2.fre ...