Function Run Fun(记忆化搜索)

来源:互联网 发布:mac samba服务器配置 编辑:程序博客网 时间:2024/05/19 05:39

http://poj.org/problem?id=1579


#include <cstdio>#include <cstring>#include <cstdlib>#include <string>#include <map>#include <iostream>#include <stdexcept>#include <cstddef>#include <algorithm>#include <vector>#include <numeric>#include <cctype>#define LL long long#define Endl endl#define INF 0x7fffffff//#define WJusing namespace std;const int maxn=22;int vis[maxn][maxn][maxn];int dfs(int a,int b,int c){if(a<=0||b<=0||c<=0)return 1;if(a>20||b>20||c>20)return dfs(20,20,20);if(vis[a][b][c]) return vis[a][b][c];if(a<b&&b<c) return vis[a][b][c]=dfs(a,b,c-1)+dfs(a,b-1,c-1)-dfs(a,b-1,c);else return vis[a][b][c]=dfs(a-1,b,c)+dfs(a-1,b-1,c)+dfs(a-1,b,c-1)-dfs(a-1,b-1,c-1);}int main(int argc, char *argv[]){#ifdef WJ//freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);#endifint a,b,c;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,dfs(a,b,c));}return 0;}


0 0
原创粉丝点击