社区讨论

CE求助

P1464[PacNW 1999] Function参与者 5已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mi8624wh
此快照首次捕获于
2025/11/21 09:13
4 个月前
此快照最后确认于
2025/11/21 09:13
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long w[30][30][30]={0};
long long find(long long a,long long b,long long c)
{
    if(w[a][b][c]!=0)	return w[a][b][c];
    else if(a<=0||b<=0||c<=0)	return 1;
    else if(a>20||b>20||c>20)	w[a][b][c]=find(20,20,20);
    else if(a<b && b<c)		w[a][b][c]=find(a,b,c-1)+find(a,b-1,c-1)-find(a,b-1,c);
    else w[a][b][c]=find(a-1,b,c)+find(a-1,b-1,c)+find(a-1,b,c-1)-find(a-1,b-1,c-1);
    return w[a][b][c];
}
int main()
{
    long long a,b,c;
    while(a!=-1&&b!=-1&&c!=-1)
    {
        scanf("%lld %lld %lld",&a,&b,&c);
        printf("w(%lld, %lld, %lld) = ",a,b,c);
        if(a>20) a=21;
        if(b>20) b=21;
        if(c>20) c=21;
        printf("%lld\n",find(a,b,c));
    }
    return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...