6 5 1 4 1 6 1 7 2 7 2 8 3 0
4
动态规划!也可以用广度优先搜索!
AC码:
#include<stdio.h> #include<string.h> int dp[100005][15]; int Max(int x,int y) { return x>y?x:y; } int main() { int n,i,j,max,a,b; while(scanf("%d",&n)&&n) { memset(dp,0,sizeof(dp)); max=0; for(i=0;i<n;i++) { scanf("%d%d",&a,&b); dp[b][a]++; if(max<b) max=b; } for(i=max-1;i>=0;i--) { for(j=0;j<=10;j++) { if(j==0) dp[i][j]+=Max(dp[i+1][j],dp[i+1][j+1]); else dp[i][j]+=Max(Max(dp[i+1][j-1],dp[i+1][j+1]),dp[i+1][j]); } } printf("%d\n",dp[0][5]); } return 0; }
原文地址:http://blog.csdn.net/u012804490/article/details/24810823