POJ|POJ 2385(Apple Catching)
链接:https://vjudge.net/problem/POJ-2385#author=SCU2018
思路:dp题,首先找到状态转移关系,有dp[i][j] = max(dp[i-1][j],dp[i-1][j-1]),如果此时所在位置还有苹果,那么dp[i][j]还需+1,注意最后输出的不一定是dp[t][m],因为可能最大移动步数不需要用完,所以还需要dp[t][k]中寻找最大值。
【POJ|POJ 2385(Apple Catching)】代码:
#include
#include
#include
using namespace std;
int a[1001];
int dp[1001][31];
int main(){
memset(dp,0,sizeof(dp));
int t,m;
cin>>t>>m;
for(int i=1;
i<=t;
i++){
cin>>a[i];
}
for(int i=1;
i<=t;
i++){
for(int j=0;
j<=m;
j++){
if(j==0)dp[i][j] = dp[i-1][j];
else
dp[i][j] = max(dp[i-1][j],dp[i-1][j-1]);
if(j%2+1==a[i])dp[i][j]++;
}
}
int ans = dp[t][0];
for(int j=1;
j<=m;
j++){
ans = max(ans,dp[t][j]);
}
cout<
推荐阅读
- Codeforces|Codeforces Round #263 Div.1 B Appleman and Tree --树形DP【转】
- 模板 poj2947 Widget Factory 高斯消元
- POJ 1027 The Same Game 模拟题
- 题库-CF|【Codeforces Round 263 (Div 2)C】【贪心 哈弗曼思维】Appleman and Toastman 每个非1size子树延展为2子树的最大权
- POJ 2728 Desert King(最优比率生成树)
- 图论|POJ1364 King 差分约束
- POJ 1364 King 差分约束系统
- poj2728|poj2728 Desert King
- SPOJ DISUBSTR - Distinct Substrings or SUBST1 - New Distinct Substrings 【不同子串数目】
- POJ|POJ2728 Desert King