zoukankan      html  css  js  c++  java
  • [ZJOI2005]午餐

    [ZJOI2005]午餐

    luogu
    BZOJ
    一个很符合常理的贪心,吃得久的先打饭,
    于是sort一遍
    然后f[i][j]表示前i个人,A窗口打饭用了j分钟,吃完饭的最小时间
    枚举第i个人在哪个窗口打饭转移

    #define ri register int
    #include<bits/stdc++.h>
    using namespace std;
    const int _=205;
    inline int re(){
    	ri x=0,w=1;register char ch=getchar();
    	while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
    	while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+ch-'0',ch=getchar();
    	return x*w;
    }
    int n,ans=1e9,s,f[_][_*_];
    struct node{int a,b;}p[_];
    inline bool cmp(node x,node y){return x.b>y.b;}
    int main(){
    	n=re();
    	for(ri i=1;i<=n;i++)
    		p[i].a=re(),p[i].b=re();
    	sort(p+1,p+n+1,cmp);
    	memset(f,63,sizeof(f));
    	f[0][0]=0;
    	for(ri i=1;i<=n;i++){
    		s+=p[i].a;
    		for(ri j=0;j<=s;j++){
    			f[i][j]=min(f[i][j],max(f[i-1][j],s-j+p[i].b));
    			if(j>=p[i].a)f[i][j]=min(f[i][j],max(f[i-1][j-p[i].a],j+p[i].b));
    			if(i==n)ans=min(ans,f[n][j]);
    		}
    	}
    	printf("%d
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    C/C++的区别
    stm32之UCOS-III
    PID控制及整定算法
    PCB设计基础及技巧
    电路的一些基本理论
    stm32与三菱PLC通信
    stm32之外设控制
    stm32之内部功能
    JavaScript数组方法详解
    git新建关联克隆仓库指令
  • 原文地址:https://www.cnblogs.com/sdzwyq/p/9922901.html
Copyright © 2011-2022 走看看