社区讨论
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 条回复,欢迎继续交流。
正在加载回复...