QAQ
查看原帖
QAQ
251223
2019tflszst楼主2021/8/5 21:39
#include<bits/stdc++.h>
using namespace std;
long long int a[10000][3];
long long int p;//用于记录输入数据组的数量
long long int wr[21][21][21];
long long int w(long long int a,long long int b,long long int c);
int main() {
	for(p=0; p<10000; p++) {
		cin>>a[p][0]>>a[p][1]>>a[p][2];
		if(a[p][0]==-1&&a[p][1]==-1&&a[p][2]==-1)
			break;
	}
	// p个样例
	for(int i=0; i<p; i++) {
		cout<<"w("<<a[i][0]<<", "<<a[i][1]<<", "<<a[i][2]<<") = "<<w(a[i][0],a[i][1],a[i][2]);
		if(i<p-1)
			cout<<endl;
	}
	return 0;
}
long long int w(long long int a,long long int b,long long int c) {
	if(a<=0||b<=0||c<=0)
		return 1;
	else if(a>20||b>20||c>20)
		return wr[20][20][20]=w(20,20,20);
	else if(wr[a][b][c]!=0)
		return wr[a][b][c];
    else if(a<b&&b<c)
		return wr[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)+w(a,b-1,c);
	else return wr[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);

}
2021/8/5 21:39
加载中...