1 条题解

  • 1
    @ 2024-10-17 13:34:35
    #include<bits/stdc++.h>
    using namespace std;
    int f[101][101][101],a[101],b[101],c[101];
    int I,J,K;
    int Move(int x,int y,int z,int qwq)
    {
    	qwq++;
    	int max1=0;
    	if(f[x][y][z]==0)
    	{
    		if(x>0)
    		max1=max(max1,Move(x-1,y,z,qwq)+a[x]*qwq);
    		if(y>0)
    		max1=max(max1,Move(x,y-1,z,qwq)+b[y]*qwq);
    		if(z>0)
    		max1=max(max1,Move(x,y,z-1,qwq)+c[z]*qwq);
    	//	cout<<qwq<<" "<<x<<" "<<y<<" "<<z<<" "<<max1<<endl;	
    	f[x][y][z]=max1;
    	}
    	return f[x][y][z];
    }
    int main() 
    {
    	cin>>I>>J>>K;
    	for(int i=1;i<=I;i++)
    	cin>>a[i];
    	for(int i=1;i<=J;i++)
    	cin>>b[i];
    	for(int i=1;i<=K;i++)
    	cin>>c[i];
    	Move(I,J,K,0);
    	cout<<f[I][J][K];
    	
    	
    }
    
    • 1

    信息

    ID
    953
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    29
    已通过
    12
    上传者