题意介绍
题意分析
动态规划,dp[i][j]表示第i秒第j个位置上猫的数量从最后一秒对每个点的左右两边进行搜索即可。
通过代码
#include<bits/stdc++.h>
using namespace std;
int m, a, b;
int dp[100001][11];
int main() {
while (cin >> m && m != 0) {
int mn = 0;
memset(dp, 0, sizeof(dp));
for (int i = 0; i < m; i++) {
cin >> a >> b;
dp[b][a]++;
mn = max(mn, b);
}
for (int i = mn - 1; i >= 0; i--) {
for (int j = 1; j <= 9; j++)
dp[i][j] += max(dp[i + 1][j - 1], max(dp[i + 1][j], dp[i + 1][j + 1]));
dp[i][0] += max(dp[i + 1][0], dp[i + 1][1]);
dp[i][10] += max(dp[i + 1][10], dp[i + 1][9]);
}
cout << dp[0][5] << endl;
}
return 0;
}