欢迎光临散文网 会员登陆 & 注册

POJ竞赛题目讲解_POJ2985(树状数组)

2022-09-12 16:14 作者:Clayton_Zhou  | 我要投稿

 http://poj.org/problem?id=2985

题意:

就是一开始给你n个集合,每个集合里面有一个元素,然后有m次操作,每次操作有两种可能,一种是查询当前所有集合中第k大的集合的大小,也就是所有集合内部的元素个数第k大的集合的元素个数;

另一种是合并某两个集合,合并后的集合将变为原来两个集合的大小之和


题解:

巧妙使用树状数组

 c[i]树形数组, c[i] 表示,大小为i的的集合的个数

 f[i]节点i的父亲节点标号

 a[i]以节点i为根节点的集合元素个数,初始值为1


 k=1 表示第1大组, 位置足够大,包含所有的组个数num

 k=2 表示第2大组, 位置足够大,包含 组个数num-1


POJ竞赛题目讲解_POJ2985(树状数组)的评论 (共 条)

分享到微博请遵守国家法律