40分求助dalao,玄关
  • 板块P1464 Function
  • 楼主miffy_123
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/9/29 15:52
  • 上次更新2023/11/2 17:19:44
查看原帖
40分求助dalao,玄关
705296
miffy_123楼主2023/9/29 15:52
//2023/9/29 15:37
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define INF 2147483646
int ans[21][21][21];
int w(int a,int b,int c){
	if(a<=0||b<=0||c<=0){
		return 1;
	}
	if(ans[a][b][c]!=0){
		return ans[a][b][c];
	}
	if(a<b&&b<c){
		int k=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
		ans[a][b][c]=k;
		return k;
	}
	int k=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);
	ans[a][b][c]=k;
	return k;
}
int main(){
	for(int i=0;i<=20;i++){
		for(int j=0;j<=20;j++){
			for(int k=0;k<=20;k++){
				ans[i][j][k]=0;
			}
		}
	}
    ll a,b,c;
    scanf("%lld %lld %lld",&a,&b,&c);
    while(a>-1||b>-1||c>-1){
    	cout<<"w("<<a<<", "<<b<<", "<<c<<")";
    	if(a>20){
	    	a=20;
	    	b=20;
	    	c=20;
		}
		else if(b>20){
    		a=20;
	    	b=20;
	    	c=20;
		}
		else if(c>20){
    		a=20;
	    	b=20;
	    	c=20;
		}
		cout<<" = "<<w(a,b,c)<<endl;
	    cin>>a>>b>>c;
	}
    return 0;
}
2023/9/29 15:52
加载中...