Help!!!60pts

P1464 Function

Twistzz__ @ 2023-10-09 19:15:22

#include<bits/stdc++.h>
using namespace std;
long long i,j,k,dp[21][21][21];
long long w(int a,int b,int c){
    if(a<=0 || b<=0 || c<=0)return 1;
    if(a>20 | b>20 | c>20){
        if(dp[20][20][20]!=0)return dp[20][20][20];
        else{
            dp[20][20][20]=w(20,20,20);
            return dp[20][20][20];
        }
    }
    if(dp[a][b][c]!=0)return dp[a][b][c];
    if(a<b && b<c){
        if(dp[a][b][c]!=0)return dp[a][b][c];
        else{
            if(a<=20 && b<=20 && c<=20)dp[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
            return w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
        } 
    }
    if(a<=20 && b<=20 && c<=20){
        dp[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 dp[a][b][c];
    }else return 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 1;
}
int main(){
    while(cin>>i>>j>>k){
        if(i==-1 && j==-1 && j==-1)return 0;
        else cout<<"w("<<i<<", "<<j<<", "<<k<<") = "<<w(i,j,k)<<endl;
    }
    return 0;
}

求 巨 助 ! ! !


by Twistzz__ @ 2023-10-16 19:20:22

我已会 tks


|