博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2818 Building Block
阅读量:6001 次
发布时间:2019-06-20

本文共 1407 字,大约阅读时间需要 4 分钟。

Building Block

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 1982    Accepted Submission(s): 598

Problem Description
John are playing with blocks. There are N blocks (1 <= N <= 30000) numbered 1...N。Initially, there are N piles, and each pile contains one block. Then John do some operations P times (1 <= P <= 1000000). There are two kinds of operation:
M X Y : Put the whole pile containing block X up to the pile containing Y. If X and Y are in the same pile, just ignore this command. 
C X : Count the number of blocks under block X 
You are request to find out the output for each C operation.
Input
The first line contains integer P. Then P lines follow, each of which contain an operation describe above.
Output
Output the count for each C operations in one line.
 
Sample Input
6
M 1 6
C 1
M 2 4
M 2 6
C 3
C 4
Sample Output
1
0
2
Source
Recommend
gaojie
题目大意:有n个blocks,定义两种操作,一种是M x y 将block x加入到block y 下面,包括x的下面所有blocks。另一个是C x,计算block  x 下面block 的数量并输出来。
分析:这道题可以通过并查集来解决,首先每个block的跟自己归在一类,,当遇到M操作时,将x 集合加入到y集合下面,并将y的数量加上x的数量,当碰到C 操作时,只要输出相应的数量即可。
1 #include
2 #include
3 #include
4 #define maxlen 30010 5 using namespace std; 6 int father[maxlen],all[maxlen],sum[maxlen]; 7 void Init() 8 { 9 for(int i=0; i
View Code

 

转载于:https://www.cnblogs.com/shuzy/p/3187106.html

你可能感兴趣的文章
RHEL6入门系列之十九,硬盘分区与格式化
查看>>
Ajax在java前台中怎么运用
查看>>
Linux下升级 OpenSSH
查看>>
标准功能模块组件 -- 名片管理组件,C\S 版本的标准用例程序,可以参考权限实现方法...
查看>>
zygote进程图
查看>>
ldap快速配置
查看>>
docker之docker-machine用法
查看>>
IIS 7启用static JSON文件能POST方法
查看>>
P5205 【模板】多项式开根
查看>>
微博mini for Windows Phone 8 开发那些事
查看>>
redis文章索引
查看>>
OpenSSH利用处理畸形长度密码造成的时间差,枚举系统用户(CVE-2016-6210)
查看>>
Javascript回调函数
查看>>
可能是最简单的面向对象入门教程(二)为什么要有类型
查看>>
配置Openfiler做ISCS实验
查看>>
Maven启用代理访问
查看>>
LDAP & Implementation
查看>>
hdu 4597 Play Game
查看>>
hdu 1398 Square Coins (母函数)
查看>>
试验性的Numpy教程(译)
查看>>