一、二叉树取宝
在一棵完全二叉树上放着各式各样的宝物,宝物的价值是一个整数。只能从上到下取一次。你的任务是计算最多能取到的宝物。
第1行是一个正整数n,表示完全二叉树的结点数,接着有n个整数,分别表示每个结点的财富值。
1 import java.util.Scanner; 2 3 public class Main { 4 static Scanner sc = new Scanner(System.in); 5 6 public static void main(String[] args) { 7 int id = 1; 8 while(sc.hasNext()){ 9 int n = sc.nextInt(); 10 if(n == 0) break; 11 int[] a = new int[n]; 12 for(int i = 0; i < n; i++) 13 a[i] = sc.nextInt(); 14 15 for(int i = n-1; i > 0; i-=2) 16 a[(i-2)/2] += Math.max(a[i], a[i-1]); 17 18 System.out.println("Case "+ id++ +":"+a[0]); 19 } 20 } 21 } 22