1 条题解

  • 1
    @ 2025-2-9 21:50:16
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,s,r,W;
    int a[210][210],b[210][210],c[20101],f[21100],t[21010],w[20110],p;
    int main(){
        scanf("%d%d%d%d",&n,&m,&s,&r);
        W=min(s,r-1); 
        for(int i=1;i<=n;i++){
        	for(int j=1;j<=m;j++) scanf("%d",&a[i][j]);
    	}
        for(int i=1;i<=n;i++){
        	for(int j=1;j<=m;j++) scanf("%d",&b[i][j]);
    	}
        for(int i=1;i<=n;i++){
        	for(int j=1;j<=m;j++){
        		if(a[i][j]>0&&b[i][j]>0){
        			w[++p]=(i+j)*2;
                	c[p]=a[i][j];
                	t[p]=b[i][j];
    			}
    		}
    	}
        for(int i=1;i<=p;i++){
        	for(int k=1;k<=t[i];k++){
        		for(int j=W;j>=w[i];j--){
        			f[j]=max(f[j],f[j-w[i]]+c[i]);
    			}
    		}
    	}
        cout<<f[W];
        return 0;
    }
    
    • 1

    信息

    ID
    1329
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    52
    已通过
    9
    上传者