码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 3177 Crixalis's Equipment

时间:2017-01-21 00:37:33      阅读:390      评论:0      收藏:0      [点我收藏+]

标签:class   ble   scan   tchar   can   scanf   div   blog   扩展   

http://acm.hdu.edu.cn/showproblem.php?pid=3177

/*
最初贪心 想按bi降序排列--->>首先放入 需求区间大的
-->>但是发现 有很多反例 。。例如

21 2
7 20
1 15 -->>先放bi = 20不可以 但是先放bi = 15可以
正确贪心-->>假设放两件家居
ai bi
第一件家居 a1 b1
第二件家居 a2 b2
假设先放第一件家居 :
放第一件家居时 满足的条件 V >= b1
放第二件家居时 满足的条件 V >= a1+b2;

假设先放第二件家居 :
放第二件家居时 满足的条件 V >= b2
放第一件家居时 满足的条件 V >= a2+b1;

可以发现每一次放入家居时 最大临时空间是a1+b2 和 a2+b1
那么贪心地取这两者之间较小的 使得 放入的可能性变大
ai在前表示ai先放入 --->>>取min(a1+b2, a2+b1)
即按照 a1+b2 < a2+b1 --->> b1 - a1 > b2 - a2排序 即可

扩展到n件家居 每次 要求满足的条件都是 剩余空间V‘ >= ai + bj//i是前一个放入的 j 是将要放入的
那么 贪心策略便是使 ai+bj这个临时最大空间 最小

*/

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 
 7 typedef pair<int, int> P; //first -->>Ai
 8 
 9 P p[1024];
10 
11 bool cmp(P p1, P p2)
12 {
13     return (p1.second - p1.first) > (p2.second - p2.first);//bi - ai降序
14 }
15 
16 int main()
17 {
18     freopen("in.txt", "r", stdin);
19     int T, V, N;
20     scanf("%d", &T);
21    // printf("%d\n",T);
22     while (T--)
23     {
24         getchar();
25         scanf("%d%d",&V, &N);
26         for (int i = 0; i < N; i++)
27         {
28             scanf("%d%d", &p[i].first, &p[i].second);
29         }
30         sort(p, p+N, cmp);
31         bool judge = true;
32         for (int i = 0; i < N; i++)
33         {
34             if (p[i].second <= V)
35             {
36                 V = V - p[i].first;
37             }
38             else
39             {
40                 judge = false;
41                 break;
42             }
43         }
44         if (judge) printf("Yes\n");
45         else printf("No\n");
46     }
47     return 0;
48 }

 

HDU 3177 Crixalis's Equipment

标签:class   ble   scan   tchar   can   scanf   div   blog   扩展   

原文地址:http://www.cnblogs.com/oscar-cnblogs/p/6329703.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!