#include<stdio.h> #include<string.h> #define N 22 int dp[N][N][N]; int main() { int n,m,f,i,j,k; /*预处理,节省时间*/ for(i=0;i<=20;i++) for(j=0;j<=20;j++) for(k=0;k<=20;k++) { if(i==0||j==0||k==0) dp[i][j][k]=1; else if(i<j&&j<k) dp[i][j][k]=dp[i][j][k-1]+dp[i][j-1][k-1]-dp[i][j-1][k]; else dp[i][j][k]=dp[i-1][j][k]+dp[i-1][j-1][k]+dp[i-1][j][k-1]-dp[i-1][j-1][k-1]; } while(scanf("%d%d%d",&n,&m,&f),n!=-1||m!=-1||f!=-1) { printf("w(%d, %d, %d) = ",n,m,f); if(n<=0||m<=0||f<=0)//分情况 printf("1\n"); else if(n>20||m>20||f>20) printf("%d\n",dp[20][20][20]); else printf("%d\n",dp[n][m][f]); } return 0;}
poj 1579 简单dp由下往上
转载上一篇:poj 2081 简单递推
下一篇:poj 1163 数塔

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
POJ 3181 Dollar Dayz 简单DP
这DP虽然简单但是思考一下还是挺好的题意是1,2,3,4....k 用加法凑成N每个数可7using
#include #define ios i++ 状态转移 -
【POJ - 2663】Tri Tiling (简单dp)
题干:In how many ways can you til
#include #define i++