RSA解密
我不会写,直接放弃~🤣
完全二叉树的权值
把完全二叉树转化成数组就行了,节点对应数组下标,有这么的规律:设深度为deep,每一层最右边的为2^deep-1,所以再对应数组下标再-1就行了。
public class Main {
public static void main(final String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int[]nums=new int[n+1];
long maxSum=0;
int minDeep=Integer.MAX_VALUE;
for(int i=1;i<=n;i++)nums[i]=sc.nextInt();
int deep=0;
for(int i=1;i<=n;i=i+(int)Math.pow(2, deep-1)) {
long sum=0;
//每一层可能不满,一定要加上j<=n,否则数组越界
for(int j=i;j<i+(int)Math.pow(2, deep)&&j<=n;j++) {
sum+=nums[j];
}
if(sum>maxSum) {
minDeep=deep+1;
maxSum=sum;
}
deep++;
}
System.out.println(minDeep);
}
}