二叉树的性质

//题目:完全二叉树的权值(Acwing) #include<bits/stdc++.h> using namespace std; int const N=1e5+7; int n; int a[N]; int main(){ cin >> n; for(int i=1;i<=n;++i){ cin >> a[i]; a[i]+=a[i-1]; } int sum=-0x3fffffff,ans=0;

//二叉树的性质: 
//根的深度为0,下标(编号)为1 
//设每层的深度为deep 
//每一层有2^deep 个节点
//每一层首个节点的编号为 2^deep ,最后一个节点的编号为 2^(deep+1)-1 

//----分割线---- for(int l=1,r=1,i=1;l<=n;++i){ if(r>n) r=n; if(a[r]-a[l-1] > sum){ sum=a[r]-a[l-1]; ans=i; } l= 1 << i; r=(1<<(i+1))-1; } cout << ans; return 0; }

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-26 15:18
点赞 评论 收藏
分享
_mos_:忍耐王
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务