• 洛谷 [P2887] 防晒霜


    贪心

    首先以 miSPF 为关键字降序排列,然后对于每一头奶牛寻找满足范围的 SPF 值最大的防晒霜用,
    我们发现,因为已经按最小值降序排列,所以对于下界来说若当前奶牛满足,之后的奶牛肯定满足,对上界来说,
    对于 SPF[x] < SPF[y] 来说,只可能 x,y 都满足, x,y 都不满足, 或 x 满足 y 不满足.所以选最大的肯定更优

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <cmath>
    using namespace std;
    const int MAXN = 3005;
    struct cow{
    	int ma, mi;
    	bool operator < (const cow & b) const {
    		if(mi != b.mi) return mi > b.mi;
    		else return ma > b.ma;
    	}
    }a[MAXN];
    int n, m, cnt[MAXN], wei[MAXN], ans;
    int main() {
    	cin >> n >> m;
    	for(int i = 1; i <= n; i++) {
    		cin >> a[i].mi >> a[i].ma;
    	}
    	for(int i = 1; i <= m; i++) {
    		cin >> wei[i] >> cnt[i];
    	}
    	sort(a + 1, a + 1 + n);
    	for(int i = 1; i <= n; i++) {
    		int ma = 0, k = 0;
    		for(int j = 1; j <= m; j++) {
    			if(cnt[j]) {
    				if(wei[j] >= a[i].mi && wei[j] <= a[i].ma) {
    					if(wei[j] > ma) {
    						ma = wei[j];
    						k = j;
    					}
    				}
    			}
    		}
    		if(ma) {
    			cnt[k]--; ans++;
    		}
    	}
    	cout << ans << endl;
    	return 0;
    }
    
  • 相关阅读:
    Regexp:教程
    Regexp:目录
    笔记-C#:C# 方法、属性杂项-01
    Regexp:正则表达式应用——实例应用
    正则表达式:百科
    Regexp:template
    AngularJS:参考手册
    命令目录
    java实现连续数的公倍数
    java实现连续数的公倍数
  • 原文地址:https://www.cnblogs.com/Mr-WolframsMgcBox/p/8616046.html
Copyright © 2020-2023  润新知