标签:
6 5 1 4 1 6 1 7 2 7 2 8 3 0
4
上次是去年8月份做的
今天再做一次
其实就是递推 。从第t秒倒着递推到0秒即可。
为了方便比较 把每个坐标都+1
#include <stdio.h> #include <string.h> int dp[100005][15]; int max(int a,int b,int c) { int max=a; if(b>max) max=b; if(c>max) max=c; return max; } int main() { int n,i,j; while(~scanf("%d",&n)) { if(n==0) break; int maxT=0; memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) { int x,t; scanf("%d %d",&x,&t); dp[t][x+1]++; if(t>maxT) maxT=t; } for( i=maxT;i>=1;i--) { for(j=1;j<=11;j++) { dp[i-1][j]+=max(dp[i][j-1],dp[i][j+1],dp[i][j]); } } printf("%d\n",dp[0][6]); } return 0; }
标签:
原文地址:http://blog.csdn.net/su20145104009/article/details/51165344