1 条题解

  • 1
    @ 2022-8-31 9:52:52
    #include<bits/stdc++.h>
    #define rep(i,a,b) for(int i=a;i<=b;i++)
    #define pre(i,a,b) for(int i=a;i>=b;i--)
    #define N 30005
    using namespace std;
    int n,f[2][N];
    int main(){
    	scanf("%d",&n);
    	memset(f,0x3f,sizeof(f));
    	f[0][0]=0;
    	int s=0;
    	rep(op,1,n){
    		int cur=op&1;
    		int pre=cur^1;
    		memset(f[cur],0x3f,sizeof(f[cur]));
    		int x,y,z;scanf("%d%d%d",&x,&y,&z);
    		s+=max(x,max(y,z));
    		rep(i,0,s){
    			if(y)f[cur][i]=min(f[cur][i],f[pre][i]+y);
    			if(x&&i>=x)f[cur][i]=min(f[cur][i],f[pre][i-x]);
    			if(z&&i>=z)f[cur][i]=min(f[cur][i],f[pre][i-z]+z);
    		}
    	}
    	int ans=0x7fffffff;
    	rep(i,0,s)ans=min(ans,max(i,f[n&1][i]));
    	printf("%d\n",ans);
    	return 0;
    } 
    
    • 1

    信息

    ID
    1222
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    7
    已通过
    4
    上传者