标签:
一开始被吓到了,后来再仔细一读发现就是一个数塔,没有那么复杂
#include<stdio.h> #include<string.h> #include<algorithm> #include<cmath> #include<iostream> using namespace std; int dp[15][100005]; int main() { int n; while(~scanf("%d",&n)) { int x,t,maxs = -1; if(n == 0) break; memset(dp,0,sizeof(dp)); for(int i = 0;i < n;i++) { scanf("%d%d",&x,&t); dp[x][t]++; if(t > maxs) maxs = t; } for(int i = maxs-1;i >= 0;i--) { for(int j = 0;j <= 10;j++) { if(j == 0) dp[j][i] += max(dp[j][i+1],dp[j+1][i+1]); else if(j == 10) dp[j][i] += max(dp[j-1][i+1],dp[j][i+1]); else dp[j][i] += max(dp[j+1][i+1],max(dp[j][i+1],dp[j-1][i+1])); } } printf("%d\n",dp[5][0]); } }
标签:
原文地址:http://www.cnblogs.com/jifahu/p/5449276.html