请求帮忙
  • 板块P1464 Function
  • 楼主gyttnnd
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/11/14 19:43
  • 上次更新2023/10/27 02:57:38
查看原帖
请求帮忙
835944
gyttnnd楼主2022/11/14 19:43
#include<bits/stdc++.h>
using namespace std;
long long int x[109][109][109];
long long int f(long long int a,long long int b,long long int c)
{
	if(a<=0||b<=0||c<=0)
    return 1;
    else if(x[a][b][c]!=0)
    return x[a][b][c];
	else if(a>20||b>20||c>20)
	x[a][b][c]=f(20,20,20);
	else if(a<b&&b<c)
    x[a][b][c]=f(a,b,c-1)+f(a,b-1,c-1)+f(a,b-1,c);
	else
	x[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);
	return x[a][b][c];
}
int main()
{
	long long int a,b,c;
	while(cin>>a>>b>>c&&a!=-1&&b!=-1&&c!=-1)
	{
		memset(x,0,sizeof(x));
		cout<<"w("<<a<<", "<<b<<", "<<c<<") = ";
	    if(a>20)
	    a=21;
	    if(b>20)
	    b=21;
	    if(c>20)
	    c=21;
		cout<<f(a,b,c)<<endl;
	}
	return 0;
}
2022/11/14 19:43
加载中...