hdu1176 朴素dp

import java.util.Scanner;


public class Main{

    static int[][] dp;
    static int n;
    static int t,s;

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        n=sc.nextInt();
        while(n!=0){
            int max=0;
            dp=new int[100001][12];
            while(n-->0){
                s=sc.nextInt();
                t=sc.nextInt();
                dp[t][s]++;
                max=Max(t,max);
            }
            for (int i = max-1; i >=0 ; i--) {
                for (int j = 0; j < 11; j++) {
                    if(j==0){
                        dp[i][0]+=Max(dp[i+1][1],dp[i+1][0]);

                    }else{
                        dp[i][j]+=Max(dp[i+1][j+1],dp[i+1][j],dp[i+1][j-1]);
              //因为每个点在每秒有三种可能走的情况,所以要记录下走到某点时拿到馅饼数的最大值。每次dp[i][j]都会在本身的基础上加上dp[i+1][j+1],dp[i+1][j],dp[i+1][j-1]这三者的最大值 } } } System.out.println(dp[
0][5]); // for (int i = 0; i <= max; i++) { // for (int j = 0; j < 11; j++) { // System.out.print(dp[i][j]+" "); // } // System.out.println(); // } n=sc.nextInt(); } } private static int Max(int i, int i1) { int max=i; if(i1>i) max=i1; return max; } private static int Max(int i, int i1, int i2) { int max=i; if(i1>i) max=i1; if(i2>max) max=i2; return max; } }

 

 

将dp的100001改成100000就WA了

posted @ 2020-07-16 10:42  BlueValentines  阅读(104)  评论(0)    收藏  举报