• 建筑抢修


    小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的
    入侵者。但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全
    毁坏。现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需
    要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。如果某个建筑在一
    段时间之内没有完全修理完毕,这个建筑就报废了。你的任务是帮小刚合理的制订一个修理顺序,以抢修尽可能多
    的建筑。

    Input

      第一行是一个整数N接下来N行每行两个整数T1,T2描述一个建筑:修理这个建筑需要T1秒,如果在T2秒之内还
    没有修理完成,这个建筑就报废了。

    Output

      输出一个整数S,表示最多可以抢修S个建筑.N < 150,000;  T1 < T2 < maxlongint

    Sample Input

    4
    100 200
    200 1300
    1000 1250
    2000 3200

    Sample Output

    3
    贪心 优先队列
     1 #include <iostream>
     2 
     3 using namespace std;
     4 #include<stack>
     5 #include<stdio.h>
     6 #include<math.h>
     7 #include<string.h>
     8 #include<map>
     9 #include<queue>
    10 #include<algorithm>
    11 struct lll
    12 {
    13     long long needtime;
    14     long long sumtime;
    15 }a[150010];
    16 int cmp1(lll a,lll b)
    17 {
    18     return a.sumtime<b.sumtime;
    19 }
    20 struct cmp2{
    21     bool operator ()(int &a,int &b){
    22         return a<b;
    23     }
    24 };
    25 
    26 int main()
    27 {
    28     priority_queue<int,vector<int>,cmp2>s;
    29     int t,i;
    30     cin>>t;
    31     for(i=0;i<t;i++)
    32         cin>>a[i].needtime>>a[i].sumtime;
    33         sort(a,a+t,cmp1);
    34     long long add,sum;
    35     add=0;
    36     sum=0;
    37     for(i=0;i<t;i++)
    38     {
    39         if(sum+a[i].needtime<=a[i].sumtime)
    40         {
    41             add++;
    42             sum+=a[i].needtime;
    43             s.push(a[i].needtime);
    44         }
    45         else if(a[i].needtime<s.top())
    46         {
    47             sum=sum-s.top()+a[i].needtime;
    48             s.pop();
    49             s.push(a[i].needtime);
    50         }
    51     }
    52     cout<<add<<endl;
    53     return 0;
    54 }
    View Code
  • 相关阅读:
    忙碌进度条
    WPF异步调用WCF
    Oracle 数据类型及存储方式(二)
    C# 与Oracle Data Type Mappings
    【CEO来信】任正非寄语2010:开放、妥协与灰度
    数据库数据类型
    asccii 表
    SQlServer2008 表结构查询
    Oracle 数据类型及存储方式(六)
    应用特征备份
  • 原文地址:https://www.cnblogs.com/dulute/p/7272508.html
Copyright © 2020-2023  润新知