社区讨论

求助 %深搜+记忆化 0分 样例全过,奇怪的是下载样例后,输出与样例一样

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

讨论操作

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

当前回复
11 条
当前快照
1 份
快照标识符
@lo7fl1nh
此快照首次捕获于
2023/10/27 01:01
2 年前
此快照最后确认于
2023/10/27 01:01
2 年前
查看原帖
求助 %深搜+记忆化 0分 样例全过,奇怪的是下载样例后,输出与样例一样
CPP
#include<bits/stdc++.h>
#define ll long long
#define N 2*int(1e5)
using namespace std;
int a,b,c,ans;
int f[25][25][25];
int  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(){
	while(1){
		cin>>a>>b>>c;
		ans=0;
		if(a==-1&&b==-1&&c==-1) break;
		if(a>20) a=21;
		if(b>20) b=21;
		if(c>20) c=21;
		printf("w(%d, %d, %d) = ",a,b,c);
		printf("%d\n",w(a,b,c));
	
	}
	return 0;
}

回复

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

正在加载回复...