#include<bits/stdc++.h>
using namespace std;
int dp[100001][12];
int main()
{
int n;
while(~scanf("%d",&n)){
if(n==0) break;
memset(dp,0,sizeof(dp));
int x,t;
int m=0;
for(int i=0;i<n;i++){
scanf("%d%d",&x,&t);
dp[t][x]++;
if(t>m) m=t;
}
for(int i=m-1;i>=0;i--){
for(int j=0;j<11;j++){
dp[i][j]+=max(dp[i+1][j-1],max(dp[i+1][j],dp[i+1][j+1]));
}
}
printf("%d\n",dp[0][5]);
}
return 0;
}
hdu1176
这篇博客详细探讨了HDU1176这道编程题的解题思路和解决方案,涵盖了算法设计、数据结构的运用以及优化技巧。通过实例分析,帮助读者理解如何有效地解决问题。
摘要由CSDN通过智能技术生成