zoukankan      html  css  js  c++  java
  • Codevs No.1052 地鼠游戏

    2016-05-31 18:22:32

    题目链接: 地鼠游戏 Codevs No.1245

    题目大意:

      打地鼠,一开始所有地鼠都出现,但是维持的时间(s)和击中所得的积分各不同,求出采用最优策略(1s打一个)打地鼠所得

    解法:

      贪心+堆优化

      按时间倒着选,每次将当前时间结束的地鼠加入集合

      每秒在最大堆中取最上端的点加入答案即可

    需要注意的地方:

      1.时间顺序一定要对,正着选是错的

     1 //地鼠游戏 (Codevs No.1052)
     2 //贪心
     3 #include<stdio.h>
     4 #include<algorithm>
     5 #include<queue>
     6 using namespace std;
     7 const int maxn=110;
     8 struct node
     9 {
    10     int key;
    11     int time;
    12 };
    13 node F[maxn];
    14 bool comp(node a,node b)
    15 {
    16     return a.time>b.time;
    17 }
    18 priority_queue <int> q;
    19 int ans;
    20 int N;
    21 int main()
    22 {
    23     scanf("%d",&N);
    24     for(int i=1;i<=N;i++)scanf("%d",&F[i].time);
    25     for(int i=1;i<=N;i++)scanf("%d",&F[i].key);
    26     sort(F+1,F+N+1,comp);
    27     int now=F[1].time;
    28     int loc=1;
    29     while(now)
    30     {
    31         while(F[loc].time==now)
    32         {
    33             q.push(F[loc].key);
    34             loc++;
    35         }
    36         if(!q.empty())
    37         {
    38             ans+=q.top();
    39             q.pop();
    40         }
    41         now--;
    42     }
    43     printf("%d",ans);
    44     return 0;
    45 }
  • 相关阅读:
    反射工具类
    序列化反序列化工具类
    开发SCM系统笔记001
    卸载Oracle
    log4j日志级别
    类加载器与methodinterceptor接口
    hibernate 查询、二级缓存、连接池
    Hibernate缓存、组件、继承映射
    Hibernate映射1
    Hibernate配置文件
  • 原文地址:https://www.cnblogs.com/Neptune-/p/5546931.html
Copyright © 2011-2022 走看看