社区讨论

0分求助大神帮助

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

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@lo9de8hb
此快照首次捕获于
2023/10/28 09:35
2 年前
此快照最后确认于
2023/11/02 11:08
2 年前
查看原帖
代码:
C
#include<bits/stdc++.h>
using namespace std;
const int N=25;
const int M=1e6;
long long f[N][N][N];
long long w(int a,int b,int c)
{
	if(a<=0||b<=0||c<=0)
		return 1;
	else if(f[a][b][c]!=0)
		return f[a][b][c];
	else if(a>20||b>20||c>20)
		f[a][b][c]=w(20,20,20);
	else if(a<b&&b<c)
		f[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
	else 	
		f[a][b][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); 
	return f[a][b][c];
}

int main()
{
	long long x,y,z;
	while(1)
	{
		cin>>x>>y>>z;
		if(x==-1&&y==-1&&z==-1)
			break;
		printf("w(%d,%d,%d) = ",x,y,z);
		printf("%d",w(x,y,z));
		cout<<endl;
	}
	return 0;
}
样例过来了但...
有大神看看改改谢谢

回复

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

正在加载回复...