标签:hdu 1176 免费馅饼 dp
6 5 1 4 1 6 1 7 2 7 2 8 3 0
4
从最后一秒递推到第0s,类似数塔
#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cstdlib> using namespace std; int n; int dp[100010][12]; int main() { while(cin>>n&&n) { memset(dp,0,sizeof dp); int x,t; int T=-1; for(int i=0; i<n; i++) { scanf("%d%d",&x,&t); T=max(T,t); dp[t][x]+=1; } for(int i=T-1; i>=0; i--) { for(int j=0; j<=10; j++) { if(j==0) dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1]); else if(j==10) dp[i][j]+=max(dp[i+1][j],dp[i+1][j-1]); else dp[i][j]+=max(dp[i+1][j],max(dp[i+1][j-1],dp[i+1][j+1])); } } cout<<dp[0][5]<<endl; } }
标签:hdu 1176 免费馅饼 dp
原文地址:http://blog.csdn.net/acm_baihuzi/article/details/44503537