zoukankan      html  css  js  c++  java
  • 郭大侠与Rabi-Ribi (优先队列)

    title

    最近郭大侠迷上了玩Rabi-Ribi这个游戏。

    Rabi-Ribi呢,是一个打兔子的动作冒险游戏,萌萌哒的兔子在地上跑来跑去,好萌好萌呀~

    这个游戏是这样玩的,郭大侠作为一个主角,拿着一个小锤子,他的目标是敲晕兔子,然后最后把这些敲晕的兔子都带回家。

    当然咯,郭大侠想带回的兔子的总价值最高~

    但是,兔子实在是太多了,郭大侠的锤子每一秒钟只能敲晕一只兔子,而且每一只兔子只会在地面上逗留a[i]秒,在a[i]秒之后,这一只兔子就会跑回自己的小窝里面。

    所以郭大侠面临一些抉择,希望你能帮助他。

    Input

    第一行包含一个整数N表示有N个兔子在地上跑来跑去。

    第二行NN个用空格分隔的整数a[i]表示第i只兔子冒出后停留的时间

    第三行NN个用空格分隔的整数v[i]表示第i只兔子的价值。

    1≤N≤100000

    1≤a[i]≤5000

    1≤v[i]≤1000

    Output

    输出郭大侠最多能获得的价值是多少

    Sample Input

    5
    5 3 6 1 4
    7 9 2 1 5

    3
    1 1 1
    1 2 3

    Sample Output

    24

    3

    Hint

    死宅真可怕,连可爱的兔子都要敲晕带回家 QAQ

    //一眼看去貌似十分简单,随手写了已发wa了才,重新认识到这题!

    因为每秒可以敲一只兔子,所以,将兔子按时间排序,然后,要使每秒可以创造的价值足够大,所以,就是选t只最大价值的兔子即可

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 #include <queue>
     5 #include <algorithm>
     6 using namespace std;
     7 #define LL long long
     8 #define MX 100005
     9 struct Tu
    10 {
    11     int t,v;
    12     bool operator < (const Tu& b)const
    13     {
    14         return t<b.t;
    15     }
    16 }tu[MX];
    17 
    18 int main()
    19 {
    20     int n;
    21     scanf("%d",&n);
    22     for (int i=0;i<n;i++)
    23         scanf("%d",&tu[i].t);
    24     for (int i=0;i<n;i++)
    25         scanf("%d",&tu[i].v);
    26     sort(tu,tu+n);
    27     priority_queue<int ,vector<int>,greater<int> > Q;
    28     for (int i=0;i<n;i++)
    29     {
    30         if (tu[i].t>Q.size())
    31         {
    32             Q.push(tu[i].v);
    33         }
    34         else
    35         {
    36             Q.push(tu[i].v);
    37             Q.pop();
    38         }
    39     }
    40     int ans = 0;
    41     while (!Q.empty()) ans+=Q.top(),Q.pop();
    42     printf("%d
    ",ans);
    43     return 0;
    44 }
    View Code
  • 相关阅读:
    Java事务
    Mybatis二级缓存问题
    183.面试题 17.14. 最小K个数(快速排序)
    182. 跟着三叶学最短路径问题(存图方式)
    181. 差分数组学习
    AI大视觉(二十) | 小目标检测的tricks汇总
    CentOS7 上安装 mysql-5.7.26
    如何欺骗 Go Mod?
    .netcore docker常用命令-持续补充
    转载:登录后,用户配置被修改的处理方法
  • 原文地址:https://www.cnblogs.com/haoabcd2010/p/7222405.html
Copyright © 2011-2022 走看看