牛客三,J

Branch of Faith

https://ac.nowcoder.com/acm/contest/120563/J

要求我求出与某编号的深度相同的有几个,除了最后一行,其他都是满的。然后我们观察完全二叉树其实是有规律的,第n层的最后一个编号是(2的n次方 - 1),比如第二层最后一个是3,然后这题又给你最后的编号a了,只要当2的n次方 - 1大于它时(另外这题其实最后一行一定是不满的),然后就是a-2的(n次方-1)+1

#include<bits/stdc++.h>
using namespace std;
long long a,b,T,c,x,y;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>T;
    for(int i=0;i<T;i++){
        cin>>a>>b;
        for(int j=0;j<b;j++){
            cin>>c;
            x=2;
            y=1;
            while(x-1<c)x*=2;
            if(x-1>a)cout<<a-x/2+1<<"\n";
            else cout<<x/2<<"\n";
        }
    }
}
全部评论
所以就是想说看到长的题目不要害怕吧
点赞 回复 分享
发布于 02-15 01:21 江苏

相关推荐

01-14 12:34
门头沟学院 C++
牛马人的牛马人生:太暖心了啊 配环境是真烦
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务