zoukankan      html  css  js  c++  java
  • 洛谷 [P2577] 午餐

    DP + 贪心

    我们发现,如果只有一个窗口,贪心即可解决,吃饭时间长的人一定要先打饭
    有两个窗口的时候,这条性质依然满足,但是两个窗口如何分配,需要 01 背包

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <cstdlib>
    #include <algorithm>
    using namespace std;
    const int MAXN = 205;
    int dp[MAXN][MAXN * MAXN], n;
    struct THU{
    	int a, b;
    	bool operator < (const THU& t) const {
    		return b > t.b;
    	}
    }num[MAXN];
    int sum[MAXN];
    int main() {
    	cin >> n;
    	for(int i = 1; i <= n; i++) {
    		cin >> num[i].a >> num[i].b;
    	}
    	sort(num + 1, num + n + 1);
    	sum[1] = num[1].a;
    	for(int i = 2; i <= n; i++) {
    		sum[i] = sum[i - 1] + num[i].a;
    	}
    	memset(dp, 0x3f, sizeof(dp));
    	dp[0][0] = 0;
    	for(int i = 1; i <= n; i++) {
    		for(int j = 0; j <= sum[i]; j++) {
    			if(j >= num[i].a) 
    				dp[i][j] = min(dp[i][j], max(dp[i - 1][j - num[i].a], j + num[i].b));
    			dp[i][j] = min(dp[i][j], max(dp[i - 1][j], sum[i] - j + num[i].b));
    		}
    	}
    	int ans = 0x3f3f3f3f;
    	for(int i = 0; i <= sum[n]; i++) {
    		ans = min(ans, dp[n][i]);
    	}
    	cout << ans << endl;
    	return 0;
    }
    
  • 相关阅读:
    8.2Solr API使用(Facet查询)
    8.1Solr API使用(分页,高亮)
    7.Solr查询参数
    6.Solr4.10.3API使用(CURD)
    5.Solr4.10.3中配置中文分词器
    3.Solr4.10.3目录结构
    2.Linux环境下配置Solr4.10.3
    1.Solr介绍
    java集合中List与set的区别
    js快速排序
  • 原文地址:https://www.cnblogs.com/Mr-WolframsMgcBox/p/9071878.html
Copyright © 2011-2022 走看看