zoukankan      html  css  js  c++  java
  • [BZOJ1707] [Usaco2007 Nov] tanning分配防晒霜 (贪心)

    Description

      奶牛们计划着去海滩上享受日光浴。为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在身上抹防晒霜。第i头奶牛适合的最小和最 大的SPF值分别为minSPF_i和maxSPF_i(1 <= minSPF_i <= 1,000; minSPF_i <= maxSPF_i <= 1,000)。如果某头奶牛涂的防晒霜的SPF值过小,那么阳光仍然能 把她的皮肤灼伤;如果防晒霜的SPF值过大,则会使日光浴与躺在屋里睡觉变得 几乎没有差别。为此,奶牛们准备了一大篮子防晒霜,一共L(1 <= L <= 2500)瓶。第i瓶 防晒霜的SPF值为SPF_i(1 <= SPF_i <= 1,000)。瓶子的大小也不一定相同,第i 瓶防晒霜可供cover_i头奶牛使用。当然,每头奶牛只能涂某一个瓶子里的防晒霜 ,而不能把若干个瓶里的混合着用。 请你计算一下,如果使用奶牛们准备的防晒霜,最多有多少奶牛能在不被灼 伤的前提下,享受到日光浴的效果?

    Input

      * 第1行: 2个用空格隔开的整数:C和L

      * 第2..C+1行: 第i+1行给出了适合第i头奶牛的SPF值的范围:minSPF_i以及 maxSPF_i * 第C+2..C+L+1行: 第i+C+1行为了第i瓶防晒霜的参数:SPF_i和cover_i,两个 数间用空格隔开。

    Output

      * 第1行: 输出1个整数,表示最多有多少头奶牛能享受到日光浴

    Sample Input

    3 2
    3 10
    2 5
    1 5
    6 2
    4 1

      输入说明:

      一共有3头奶牛,2瓶防晒霜。3头奶牛适应的SPF值分别为3..10,2..5,以 
    及1..5。2瓶防晒霜的SPF值分别为6(可使用2次)和4(可使用1次)。可能的分
    配方案为:奶牛1使用第1瓶防晒霜,奶牛2或奶牛3使用第2瓶防晒霜。显然,最
    多只有2头奶牛的需求能被满足。

    Sample Output

    2

    HINT 

    Source

      Gold

    Solution

      开始以为是网络流...... 之后以为是dp...... 我是不是没救了......
      先对每头奶牛按其maxSPF排序,之后贪心找满足这头牛的最小SPF的防晒霜。
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef pair<int, int> pii;
     4 pii cow[2505], spf[2505];
     5 int main()
     6 {
     7     int n, m, ans = 0, cur;
     8     cin >> n >> m;
     9     for(int i = 1; i <= n; i++)
    10         cin >> cow[i].second >> cow[i].first;
    11     for(int i = 1; i <= m; i++)
    12         cin >> spf[i].first >> spf[i].second;
    13     sort(cow + 1, cow + n + 1);
    14     spf[0].first = 10000;
    15     for(int i = 1; i <= n; i++)
    16     {
    17         cur = 0;
    18         for(int j = 1; j <= m; j++)
    19             if(cow[i].first >= spf[j].first)
    20                 if(cow[i].second <= spf[j].first)
    21                     if(spf[j].first < spf[cur].first)
    22                         if(spf[j].second) cur = j;
    23         if(cur) spf[cur].second--, ans++;
    24     }
    25     cout << ans << endl;
    26     return 0;
    27 }
    View Code
  • 相关阅读:
    递归函数及Java范例
    笔记本的硬盘坏了
    “References to generic type List should be parameterized”
    配置管理软件(configuration management software)介绍
    WinCE文件目录定制及内存调整
    使用Silverlight for Embedded开发绚丽的界面(3)
    wince国际化语言支持
    Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
    WinCE Heartbeat Message的实现
    使用Silverlight for Embedded开发绚丽的界面(2)
  • 原文地址:https://www.cnblogs.com/CtrlCV/p/5357203.html
Copyright © 2011-2022 走看看