1 条题解

  • 0
    @ 2025-4-7 21:38:26

    C++ :

     #include<iostream>
     #include<cstdio>
     #include<cstring>
     using namespace std;
     int t,n,m,p[110][110];
     int f[10100],ans[110];
     int main(){
     	ios::sync_with_stdio(false);
     	cin>>t>>n>>m;
     	for(int i=1;i<=t;i++){
     		for(int j=1;j<=n;j++){
     			cin>>p[i][j];
    		 }
    	 }
     	//如果只有一天,直接输出m(全部卖出)
     	ans[0]=m;
    	if(t==1){
    		cout<<m;
    		return 0;
    	} 
    	for(int k=1;k<=t-1;k++){
    		memset(f,0,sizeof f);
    		int w=ans[k-1];//在不超过m的情况下尽可能多的购置
    		for(int i=1;i<=n;i++){
    			for(int j=p[k][i];j<=w;j++){
    				f[j]=max(f[j],f[j-p[k][i]]+(p[k+1][i]-p[k][i]));
    			}
    		} 
    		ans[k]=w+f[w];
    	}
    	cout<<ans[t-1]<<endl;
     	return 0;
     }
    
    
    • 1

    信息

    ID
    1978
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者