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]); } } } 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了
原文:https://www.cnblogs.com/lijiahui-123/p/13321360.html