** 2185 - 子树的大小 --- 完全二叉树
** 来源: 东方博宜oj oj.czos.cn
#include<bits/stdc++.h>
using namespace std;
int n,m;
int cnt=0; //每层都满的二叉树的层数
int ans=0; //节点的总数量
int main()
{
cin>>m>>n;
for(int i=m;i<=n;i=i*2+1) cnt++;
ans=(int)pow(2,cnt)-1; //满的层数的所有节点数
//求出最后一层不满的(假设存在)第1个节点编号
int s=m*(int)pow(2,cnt);
if(s<=n) ans+=n-s+1;
cout<<ans;
return 0;
}
2185 - 子树的大小 --- 完全二叉树
最新推荐文章于 2023-11-23 19:38:59 发布