您的位置:首页 > 其它

【poj1579】Function Run Fun (动态规划DP递归,记忆化递归)

2011-04-20 08:59 337 查看
#include<cstdio>
using namespace std;
int arr[21][21][21];
int fun(int a,int b,int c)
{
if(a<=0||b<=0||c<=0) return 1;
if(a>20||b>20||c>20) return arr[20][20][20];
if(arr[a][b][c]!=0) return arr[a][b][c];
if(a<b && b<c)
return arr[a][b][c]=fun(a,b,c-1)+fun(a,b-1,c-1)-fun(a,b-1,c);
return arr[a][b][c]=fun(a-1,b,c)+fun(a-1,b-1,c)+
fun(a-1,b,c-1)-fun(a-1,b-1,c-1);
}
int main()
{
freopen("1.txt","r",stdin);
int a,b,c;
arr[20][20][20]=1048576;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
if(a==-1 &&b==-1&&c==-1) break;
printf("w(%d, %d, %d) = %d/n",a,b,c,fun(a,b,c));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: