文章

8

粉丝

14

获赞

1

访问

8.2k

头像
二叉树2 题解:
P1264 北京大学机试题
发布于2024年8月31日 16:02
阅读数 1.0k

 按照下标规律,2i+1和2i+2一直循环下去,直到越界(i>=n)

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int m, n;
	
	while(cin >> m >> n) {
		int index = m - 1;
		int ans = 1;
		queue<int> q;
		q.push(index);
		
		while(!q.empty()) {
			int id = q.front();
			q.pop();
			
			int id1 = 2 * id + 1 >= n ? -1 : 2 * id + 1;
			int id2 = 2 * id + 2 >= n ? -1 : 2 * id + 2;
			
			if(id1 != -1) {
				q.push(id1);
				ans++;
			}
			if(id2 != -1) {
				q.push(id2);
				ans++;
			}
		}
		
		cout << ans << endl;
	}
	 
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发