6 条题解

  • 2
    @ 2025-5-16 18:26:46
    #include <bits/stdc++.h>
    using namespace std;
    long long f[30][30][30];
    long long w(long long a,long long b,long long c){
    	if(a<=0 || b<=0 || c<=0)return 1;
    	
    	if(a>20 || b>20 || c>20)return w(20,20,20);
    	
    	if(f[a][b][c]!=0) return f[a][b][c];
    	
    	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 a,b,c;
    	while(cin >> a >> b >>c){
    		if (a==-1&&b==-1&&c==-1)return 0;
    		cout<<"w("<<a<<", "<<b<<", "<<c<<") = "<< w(a,b,c)<<endl;
    	
    		
    	}
    	return 0;
    }
    
    
    

    信息

    ID
    1230
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    646
    已通过
    133
    上传者