POJ1579:dfs+记忆

来源:互联网 发布:wind股票 mac 编辑:程序博客网 时间:2024/06/10 08:44

input.txt

6
1 1 1
2 2 2
10 4 6
50 50 50
-1 7 18
-1 -1 -1


#include <stdio.h>#include <stdlib.h>int a,b,c;int dp[25][25][25];int result;int N;int w(int a,int b,int c){if((a<=0)||(b<=0)||(c<=0)){return 1;}if((a>20)||(b>20)||(c>20)){return w(20,20,20);}if(dp[a][b][c]){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);elsedp[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(){freopen("input.txt","r",stdin);scanf("%d",&N);for(int i=0;i<N;i++){scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);if((a==-1)&&(b==-1)&&(c==-1))break;printf("w(%d, %d, %d) = %d\n",a,b,c,w(a,b,c));}}


0 0