P2342 叠积木

题目大意:
给你一堆积木,排成一行,初始时每对积木都只有一个,支持两种操作

 第一种是移动操作,格式为“移动X到Y的上面”。X和Y代表两块积木的编号,意思是将X所的那堆积木,整体叠放到Y所在的那堆积木之上;“M”

 第二种是统计操作,格式为“统计Z下方的积木数量”。Z代表一块积木的编号,意思是贝西需要报告在编号为Z的积木之下还有多少块积木;“C”

显然的带权并查集,其实是多维护了两个变量,注意查询时一定要先更新,防止查询时未被更新而出错

#include<bits/stdc++.h>#define N 300000
using namespace std;int n,fa[N],front[N],num[N];
//num表示以x为底的上面的集合中元素数量//front就是x距低端的元素数量
int find(int x){if(x==fa[x]) return x;int f=find(fa[x]);front[x]+=front[fa[x]];return fa[x]=f;
}int main()
{scanf("%d",&n);for(int i=1;i<N;i++) fa[i]=i,num[i]=1;for(int x,y,z,i=1;i<=n;i++){char a;cin>>a;if(a=='M'){scanf("%d%d",&x,&y);int fx=find(x),fy=find(y);fa[fx]=fy;//更新父节点front[fx]+=num[fy];//更新儿子的frontnum[fy]+=num[fx];//更新父亲的numnum[fx]=0;//将儿子的num归0}else {scanf("%d",&z);x=find(z);//一定要先查询在输出printf("%d\n",front[z]);}}return 0;
}

相同题目见:https://www.cnblogs.com/song-/p/9620959.html

转载于:https://www.cnblogs.com/song-/p/9625401.html

洛谷——P2342 叠积木相关推荐

  1. 【洛谷 1969】积木大赛

    题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为nn的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是h_ih i ​     ...

  2. 洛谷P2342-叠积木

    Problem 洛谷P2342-叠积木 Accept: 373   Submit: 1.1k Time Limit: 1000 mSec    Memory Limit : 128MB Problem ...

  3. 01背包的应用~洛谷P1504 积木城堡

    题目描述 XC 的儿子小 XC 最喜欢玩的游戏用积木垒漂亮的城堡.城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木. 小 XC 是一个比他爸爸 XC 还聪明的孩子,他发现垒城堡的时候,如果下面的 ...

  4. 洛谷 P1504 积木城堡

    洛谷 P1504 积木城堡 题目 题目描述 XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡.城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木.小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡 ...

  5. 洛谷P3688/uoj#291. [ZJOI2017]树状数组

    传送门(uoj) 传送门(洛谷) 这里是题解以及我的卡常数历程 话说后面那几组数据莫不是lxl出的这么毒 首先不难发现这个东西把查询前缀和变成了查询后缀和,结果就是查了\([l-1,r-1]\)的区间 ...

  6. 洛谷-DFS-1019-单词接龙-个人AC题解和公共AC题解笔记

    学习内容: 预处理 万能头文件 string的使用 话不多说,直奔主题 本人AC代码 #include<iostream> #include<cstdio> #include& ...

  7. 洛谷 深基 第4部分 基础数学与数论(19-21课)

    洛谷 深基 第4部分 基础数学与数论  第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...

  8. 洛谷P1244青蛙过河

    洛谷P1244青蛙过河 题目描述 有一条河,左边一个石墩(A 区)上有编号为 1,2,-,n 的 n 只青蛙,河中有 k 个荷叶(C 区),还有 h 个石墩(D 区),右边有一个石墩(B 区),n 只 ...

  9. 洛谷--橙色百道DP总结

    最近刷完了洛谷橙色DP大约一百道,算是发现了一些套路,就部分题目做一些总结. 大概分为三类 第一类,九大背包及其衍生 第二类,经典DP模型,如LCS,LIS等 第三类,实际问题背景的普通,环形,树上D ...

  10. 【洛谷】P2676 [USACO07DEC]Bookshelf B (c++)

    题目描述 Farmer John最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了.现在,只有书架的顶上还留有一点空间. 所有 N(1≤N≤20,000 ...

最新文章

  1. 访谈|在网络世界捕获威胁的猎人
  2. 从高铁事故到软件系统的可靠性
  3. python 多维数组删除重复
  4. 在 Visual Studio 中使用 Q# 进行量子编程
  5. 【C 语言】数组 ( 数组指针 | 数组指针定义 | 直接定义 数组指针 )
  6. 软件工程系列教材:软件架构设计实践教程
  7. CCIE学习(7)——VLAN相关命令汇总
  8. 我的Go语言学习之旅八:创建一个简单的WEB服务器
  9. 笔记本(华硕UL80VT)软件超频setFSB
  10. java使用Socket类接收和发送数据
  11. JavaScript—事件
  12. 判断用户是否已经登录
  13. 下载丨2020 PG亚洲大会(PPT汇总)
  14. iphone11右上角信号显示_iOS 11信号显示栏变了!这意味着啥?
  15. 360浏览器清除缓存_手机微信内置浏览器缓存清理指南
  16. 服务器 重启windows_安装Windows 计算机意外
  17. Gatling性能测试(一)
  18. 编译OpenJDK8 arm32的源码库
  19. 广告竞价中为什么采用二价计费
  20. 【屏类型结构体定义PanelType】 文档位置:《apiPNL.h》

热门文章

  1. 数据库基础、使用C语言构建一个数据库、SQL语言、MySQL
  2. php百度蜘蛛劫持,PHP模拟百度蜘蛛,伪造IP爬行网站,附源代码
  3. SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡
  4. ZigBee模块无线传输星形拓扑组网结构简介
  5. Andriod OpenGL 教程 10 - 3D世界
  6. Arcgis 创建渔网
  7. 初等数学复习之一元二次方程的解法
  8. 伸缩式工具刀行业调研报告 - 市场现状分析与发展前景预测
  9. 学计算机的要起一个群名,如何起一个代表青春的群名字
  10. CMake Error: The source directory “/“ does not appear to contain CMakeLists.txt.