dp[i][0]表示i号兔子先于i-1号兔子喂食,dp[i][1]反过来.
倒着DP
/** * Created by ckboss on 14-10-6. */ import java.util.*; public class DimaandHares { public static void main(String[] args){ Scanner in = new Scanner(System.in); int n=in.nextInt(); int[] A=new int[n+10],B=new int[n+10],C=new int[n+10]; int[][] dp = new int[n+10][2]; for(int i=1;i<=n;i++) A[i]=in.nextInt(); for(int i=1;i<=n;i++) B[i]=in.nextInt(); for(int i=1;i<=n;i++) C[i]=in.nextInt(); dp[n][0]=A[n]; dp[n][1]=B[n]; for(int i=n-1;i>0;i--) { dp[i][0]=Math.max(dp[i][0],dp[i+1][0]+B[i]); dp[i][0]=Math.max(dp[i][0],dp[i+1][1]+A[i]); dp[i][1]=Math.max(dp[i][1],dp[i+1][1]+B[i]); dp[i][1]=Math.max(dp[i][1],dp[i+1][0]+C[i]); } System.out.println(dp[1][0]); } }