2010年10月1日金曜日

PKU Judge Online 3176 Cow Bowling

■3176 Cow Bowling

□Problem
          7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

このようなピラミッドを上から底辺までたどっていく.たどって来た数字を全て足し合わせたた合計の最大値を求めよ.

□Solution
下からDPしていく.

□Code
  1. package p3176;  
  2.   
  3. import java.util.*;  
  4. import java.lang.*;  
  5. import java.math.*;  
  6. import java.io.*;  
  7.   
  8. import static java.lang.Math.*;  
  9. import static java.util.Arrays.*;  
  10.   
  11. // AC  
  12. public class Main{  
  13.   
  14.     Scanner sc=new Scanner(System.in);  
  15.   
  16.     final int INF=Integer.MAX_VALUE;  
  17.     final double EPS=1e-9;  
  18.   
  19.     void run(){  
  20.         int n=sc.nextInt();  
  21.         int[][] a=new int[n][n];  
  22.         for(int j=0; j<n; j++)  
  23.             for(int i=0; i<=j; i++)  
  24.                 a[j][i]=sc.nextInt();  
  25.         for(int j=n-2; j>=0; j--)  
  26.             for(int i=0; i<=j; i++)  
  27.                 a[j][i]+=Math.max(a[j+1][i], a[j+1][i+1]);  
  28.         println(""+a[0][0]);  
  29.     }  
  30.   
  31.     void print(String s){  
  32.         System.out.print(s);  
  33.     }  
  34.   
  35.     void println(String s){  
  36.         System.out.println(s);  
  37.     }  
  38.   
  39.     public static void main(String[] args){  
  40.         // System.setOut(new PrintStream(new BufferedOutputStream(System.out)));  
  41.         new Main().run();  
  42.     }  
  43. }  

0 件のコメント: