ZOJ 1168 Function Run Fun

来源:互联网 发布:淘宝网店收费吗 编辑:程序博客网 时间:2024/05/26 20:23

看到题目第一想法就是记忆化搜索,然后就写了.

#include <iostream>#include <cstdio>#include <memory.h>#include <limits.h>using namespace std;int dp[21][21][21];int w(int a, int b, int c){if(a <=0 || b<= 0 || c<=0){return 1; } else if( a > 20 || b > 20 || c > 20){return w(20,20,20);}if(dp[a][b][c] != -1){return dp[a][b][c];}else if(a < b && b < c){dp[a][b][c] = w(a, b, c - 1) + w(a, b - 1, c - 1) - w(a, b - 1, c);}else{dp[a][b][c] = w(a - 1, b, c) + w(a - 1, b - 1, c) + w(a - 1, b, c - 1) - w(a - 1, b - 1, c - 1);}return dp[a][b][c];}int main(){ int a, b, c;memset(dp, -1, sizeof(dp));while(scanf("%d %d %d", &a, &b, &c)){if(a == -1 && b == -1 && c == -1)break;printf("w(%d, %d, %d) = %d\n", a, b, c, w(a, b, c));}return 0;}


原创粉丝点击