文章
16
粉丝
0
获赞
51
访问
2.7k
在按层次编号的完全二叉树中,对于任意一个编号为k的节点:它的左孩子编号为 2k 它的右孩子编号为 2k + 1
#include<bits/stdc++.h>
using namespace std;
int main() {
long long m, n;
while (cin >> m >> n) {
if (m == 0 && n == 0) break; // 若有以 0 0 结尾的习惯可加此判断,视具体评测机而定
long long count = 0;
long long left = m;
long long right = m;
// 只要当前层的最左端还在树的总节点范围内,就继续统计
while (left <= n) {
if (right <= n) {
// 如果当前层最右端也没越界,说明这层在这棵子树里是满的
count += (right - left + 1);
} else {
// 如果最右端越界了,说明只能取到 n
&n...
登录后发布评论
暂无评论,来抢沙发