要找到x号深度相同的数量,其实就是找出x所在层的总数,第i层的数量为2的i-1次方((i-1)<<1),通过动态求出前i层的总节点数,最后一层的总节点数为n,要通过编码号求出所在的层数,只需要将该编号不断除以2直至等于0,统计出除了几次,这个次数便是所在的层数,当求出所在层数d后只需要将dp[d]-dp[d-1]就能求出d层的节点总数,而这就是答案#includeusing namespace std;int main(){int t;cin>>t;while(t--){long long n,q;cin>>n>>q;long long h=0;long long temp=n;while(temp>0){h++;temp/=2;}vector dp(h+1,0);dp[1]=1;for(long long i=2;i<=h;i++){dp[i]=dp[i-1]+((long long)1<<(i-1));}dp[h]=n;while(q--){long long x;cin>>x;long long d=0;long long current_x=x;while(current_x>0){d++;current_x/=2;}cout<