当前位置:网站首页>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数组在合并堆的时候和路径压缩的时候都要更新。
代码:
边栏推荐
- V-show失效问题
- Iptables firewall
- B 站 713 事故后的多活容灾建设|TakinTalks 大咖分享
- Sword finger offer note: t45. arrange the array into the smallest number
- Go Introduction (2)
- No matching distribution found for flask_ A solution to compat
- [excerpt] [medical image] common DICOM thumbnail interpretation and viewer converter conversion tool
- Sword finger offer notes: T53 - ii Missing numbers from 0 to n-1
- Fundamentals of mathematics 02 - sequence limit
- Shell script text three swordsmen sed
猜你喜欢

Principle, concept and construction process of MySQL database master-slave replication cluster

Bishi journey

EfficientNet

iptables防火墙

评价自动化测试优劣的隐性指标

解决方案:idea project没有显示树状图
意外收获史诗级分布式资源,从基础到进阶都干货满满,大佬就是强!

Solution: the idea project does not display a tree view

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

I do live e-commerce in tiktok, UK
随机推荐
Unity shader - Laser special effect shader[easy to understand]
Leetcode 02: sword finger offer 58 - I. flip the word order (simple); T123. Verify palindrome string; T9. Palindromes
JS string method summary
微信小程序必用接口「建议收藏」
Redis data type
关于离线缓存Application Cache /使用 manifest文件缓存
Wilcoxon rank sum and signed rank
go入门篇 (4)
Weibo comment crawler + visualization
Solve the problem of @onetomany query falling into circular reference
Pytorch shows the summary like tensorflow
matlab二分法例题(用二分法求零点例题)
Mysql8msi installation tutorial (database mysql installation tutorial)
二分查找判定树(二分查找树平均查找长度)
Regular expression of shell programming (grep of shell script text three swordsmen)
Database cli tool docker image
Shell脚本文本三剑客之awk
Interaction free shell programming
STM32 compilation error: l6235e: more than one section matches selector - cannot all be first/l
孤独的年轻人,戒不了Jellycat