这是个煞笔题,题目没告诉我他会每秒移动一米啊,而且,不是说两端不能站人吗
#include#include #include #include using namespace std;const int maxn=100000+100;int dp[maxn][15];int n;int main(){ while(~scanf("%d",&n)&&n) { memset(dp,0,sizeof(dp)); int x,t; int max_t=0; for(int i=1;i<=n;i++) { scanf("%d%d",&x,&t); dp[t][x]+=1; max_t=max(max_t,t); } for(int i=max_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 dp[i][j]+=max(max(dp[i+1][j-1],dp[i+1][j]),dp[i+1][j+1]); } } printf("%d\n",dp[0][5]); } return 0;}