当前位置:网站首页>POJ1988_Cube Stacking
POJ1988_Cube Stacking
2022-07-27 12:20:00 【51CTO】
Cube Stacking
Time Limit: 2000MS | | Memory Limit: 30000K |
Total Submissions: 18973 | | Accepted: 6605 |
Case Time Limit: 1000MS | ||
Description
Farmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes labeled 1 through N. They start with N stacks, each containing a single cube. Farmer John asks Betsy to perform P (1<= P <= 100,000) operation. There are two types of operations:
moves and counts.
* In a move operation, Farmer John asks Bessie to move the stack containing cube X on top of the stack containing cube Y.
* In a count operation, Farmer John asks Bessie to count the number of cubes on the stack with cube X that are under the cube X and report that value.
Write a program that can verify the results of the game.
Input
* Line 1: A single integer, P
* Lines 2..P+1: Each of these lines describes a legal operation. Line 2 describes the first operation, etc. Each line begins with a 'M' for a move operation or a 'C' for a count operation. For move operations, the line also contains two integers: X and Y.For count operations, the line also contains a single integer: X.
Note that the value for N does not appear in the input file. No move operation will request a move a stack onto itself.
Output
Print the output from each of the count operations in the same order as the input file.
Sample Input
6 M 1 6 C 1 M 2 4 M 2 6 C 3 C 4
Sample Output
1 0 2
Source
题目大意:
有N(N<=30,000)堆方块,开始每堆都是一个方块。方块编号1 – N。 有两种操作:
- M x y : 表示把方块x所在的堆,拿起来叠放到y所在的堆上。
- C x : 问方块x下面有多少个方块。
操作最多有 P (P<=100,000)次。对每次C操作,输出结果。
思路:
使用并查集,每加入两块砖头,让下边的砖头作为父节点,上边的砖头作为根节点;两堆砖头合并的时候,让下边堆的根节点作为上边堆的根节点。这其中,除了father数组外,还需要两个数组sum(用来记录每堆共有多少砖块),under数组(用来记录第i块砖头下边有多少个砖头),其中sum数组只在合并堆的时候更新,under数组在合并堆的时候和路径压缩的时候都要更新。
代码:
边栏推荐
- One article to understand the index of like in MySQL
- USB network card drive data stream
- In the first half of the year, the number of fires decreased by 27.7%. Guangdong will improve the fire safety quality of the whole people in this way
- [excerpt] [medical image] common DICOM thumbnail interpretation and viewer converter conversion tool
- Shell script text three swordsmen sed
- SMA TE: Semi-Supervised Spatio-Temporal RepresentationLearning on Multivariate Time Series
- [untitled] multimodal model clip
- 解决方案:Can not issue executeUpdate() or executeLargeUpdate() for SELECTs
- After Party A's hard work, 49.08 million orders of China Mobile were scrapped
- Sword finger offer notes: t58 - ii Rotate string left
猜你喜欢

Lonely young people can't quit jellycat

go入门篇 (4)

Makefile template

N ¨UWA: Visual Synthesis Pre-training for Neural visUal World creAtionChenfei

Introduction to box diagram

MySQL数据库主从复制集群原理概念以及搭建流程

Solution: can not issue executeupdate() or executelargeupdate() for selections

STS下载教程(include官网无法下载解决方案)
One article to understand the index of like in MySQL

广东:剧本杀等新行业新业态场所,消防安全监管不再“缺位”
随机推荐
你尚未连接代理服务器可能有问题或地址不正确(如何查看代理服务器ip)
Interaction free shell programming
CLS monitoring alarm: ensure high availability of online services in real time
Sword finger offer notes: T53 - I. find numbers in the sorted array
查看系统下各个进程打开的文件描述符数量
广东财政多举措助力稳住粮食安全“压舱石”
Alibaba cloud RDS exception during pool initialization
Mysql8msi installation tutorial (database mysql installation tutorial)
Kazoo tutorial
Iptables firewall
Conversion between multiple bases
微信小程序必用接口「建议收藏」
iptables防火墙
Regular expression of shell programming (grep of shell script text three swordsmen)
Chapter 7 exception handling
二分查找判定树(二分查找树平均查找长度)
Flash quickly builds an API
Sword finger offer notes: t58 - ii Rotate string left
Chapter 13 IO flow
go入门篇 (2)