动态规划--新手
一、二叉树取宝
在一棵完全二叉树上放着各式各样的宝物,宝物的价值是一个整数。只能从上到下取一次。你的任务是计算最多能取到的宝物。
第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
作 者:月 暮
出 处:https://www.cnblogs.com/AardWolf/
特此声明:欢迎园子的大大们指正错误,共同进步。如有问题或建议,也请各位大佬多多赐教!如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
出 处:https://www.cnblogs.com/AardWolf/
特此声明:欢迎园子的大大们指正错误,共同进步。如有问题或建议,也请各位大佬多多赐教!如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。