题目描述
桐桐经常找一些很有趣的数学书来阅读以增长自己的数学知识。一天,他偶然发现一个递归函数w(a,b,c)有以下性质:
如果a≤0或b≤0或c≤0则返回1;
如果a>20或b>20或c>20,则返回w(20,20,20);
如果a<b并且b<c就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,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)。
请编程求出这个递归函数的值。
输入
a,b,c三个整数。(-50≤a,b,c≤50)
输出
a,b,c三个整数所对应的w(a,b,c)函数的值。要求以w(a,b,c)=函数的值来输出。
输入样例
1 1 1
输出样例
w(1,1,1)=2
思路
我用的是DP
注意
用了数组
因为下标不能用负数
所以加个50(INF)
#include<ALgorithm>
#include<Iostream>
#include<Cstring>
#include<Cstdio>
#define INF 50
int F[150][150][150];
int a,b,c;
int main()
{
scanf("%d%d%d",&a