头像

欢迎来到我的博客

分享题解与总结

完全二叉树的权值

完全二叉树的权值

思路

设立一个指针,一次走一层

计算每层元素个数(1<<f)

ll n,a[N],p,flr,cnt,sum,maxi=LLONG_MIN,idx=-1;

ll nodenum(ll f)
{
	return (1<<f);
}

int main()
{
	cin>>n;
	for(ll i=1;i<=n;++i){
		cin>>a[i];
	}
	p=1;
	flr=1;
	while(p<=n){
		sum=0;
		cnt=nodenum(flr-1);
		for(ll i=1;i<=cnt&&p<=n;++i,++p){
			sum+=a[p];
		}
		if(sum>maxi){
			maxi=sum;
			idx=flr;
		}
		flr++;
	}
	cout<<idx;
	return 0;
}
posted @ 2026-03-24 22:05  king_steph1209  阅读(9)  评论(0)    收藏  举报