分数统计

来源:互联网 发布:linux cp强制覆盖文件 编辑:程序博客网 时间:2024/04/29 17:30
分数统计
题目:
  在统计完朋友情况之后,小明又对大家的毕业学校产生兴趣,但是他觉得单纯的统计人数是一件非常无聊的事情,于是他设计了一个算法,同一所学校毕业的学生,第1个将获得1分,第2个获得2分,第3个获得4分…,第i个将获得2^i-1分,总分就是这所小学的得分,小明想知道得分最高的学校有多少分。


首先我们知道一个数学原理:
2^0+2^1+...+2^(n-2)+2^(n-1)=(2^n)-1
知道这个就能够很快算出分数了
看了看数据,果断高精度
关键在于如何判断两人是否处于同一个集合
我们可以使用并查集
每次判断输入的两人是否处于同一集合
如果不处于就将两个集合合并即可
同时还要记录每个集合里的元素个数
注意路径压缩
最后找元素最多的集合用高精度求答案即可
至此完结。