dp

//HDU 2151 水dp
#include <stdio.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #include<math.h> #include<algorithm> using namespace std; #define N 110 #define INF 0x3f3f3f3f int main() { int n, p, m, t, dp[N][N]; while(scanf("%d%d%d%d", &n, &p, &m, &t)!=EOF) { memset(dp, 0, sizeof(dp)); dp[0][p]=1; for(int i=1; i<=m; i++) for(int j=1; j<=n; j++) dp[i][j]=max(dp[i][j], dp[i-1][j-1]+dp[i-1][j+1]); printf("%d ", dp[m][t]); } return 0;
}

/*给组数据
3 2 4 2
dp[i][j]为:
1 0 1第一秒
0 2 0
2 0 2
0 4 0


答案为:4
*/

 
原文地址:https://www.cnblogs.com/9968jie/p/5434798.html