题目大意:中文题
解题思路:列一个矩阵,把每秒的坐标情况都记录下来,然后从矩阵最后一行(即最后一秒)开始往前递推,输出初始位置 5 的馅饼数即可。
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
#include<string.h>
#include<string>
#include<queue>
#include<map>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
const int INF = 0x3f3f3f3f;
const int NINF = -INF -1;
const int MAXN = 500+5;
using namespace std;
int dp[100005][15];
int n;
int main() {
while (scanf("%d", &n) && n) {
int maxt = 0;
memset(dp, 0, sizeof(dp));
for (int i = 0; i < n; i++) {
int T, x;
scanf("%d%d", &x, &T);
dp[T][x]++;
if (maxt < T) maxt = T;
}
for (int i = maxt-1; i >= 0; i--) {
dp[i][0] += max(dp[i+1][1], dp[i+1][0]);
for (int j = 1; j < 11; j++)
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;
}