- 熟悉掌握动态规划类型的解法
动态规划的要点是需要找出 “状态转移方程”
A——递归的函数
#include <stdio.h>
#include <stdlib.h>
int d[21][21][21]={0};
int f(int a,int b,int c)
{
if(a<=0||b<=0||c<=0)
return 1;
if(a>20||b>20||c>20)
return f(20,20,20);
if(d[a][b][c])
{return d[a][b][c];
}
else if(a<b&&b<c)
return d[a][b][c]=f(a,b,c-1)+f(a,b-1,c-1)-f(a,b-1,c);
else
return d[a][b][c]=f(a-1,b,c)+f(a-1,b-1,c)+f(a-1,b,c-1)-f(a-1,b-1,c-1);
}
int main()
{
int a,b,c;
int k;
while(~scanf("%d%d%d",&a,&b,&c))
{k=f(a,b,c);
printf("%d\n",k);
}
return 0;
}