六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 39|回复: 0

poj1579——Function Run Fun

[复制链接]

升级  93.8%

309

主题

309

主题

309

主题

进士

Rank: 4

积分
969
 楼主| 发表于 2013-1-26 13:37:53 | 显示全部楼层 |阅读模式
记忆化搜索!
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int dp[21][21][21];int  w(int a,int b,int c){if(a<=0||b<=0||c<=0) {dp[a][b][c]=1;return 1;}    if(dp[a][b][c]!=0)return dp[a][b][c];    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);return dp[a][b][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,x,y,z;while(cin>>a>>b>>c){if(a==-1&&c==-1&&b==-1) break;if(a<=0||b<=0||c<=0 )printf("w(%d, %d, %d) = %d\n",a,b,c,1);else {x=a;y=b;z=c;if(a>20||b>20||c>20){x=20;y=20;z=20;}memset(dp,0,sizeof(0));printf("w(%d, %d, %d) = %d\n",a,b,c,w(x,y,z));}}return 0;}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表