博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
郭大侠与Rabi-Ribi (优先队列)
阅读量:7071 次
发布时间:2019-06-28

本文共 1186 字,大约阅读时间需要 3 分钟。

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

55 3 6 1 47 9 2 1 5

31 1 11 2 3

Sample Output

24

3

Hint

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

 

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

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

1 #include 
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 #define LL long long 8 #define MX 100005 9 struct Tu10 {11 int t,v;12 bool operator < (const Tu& b)const13 {14 return t
,greater
> Q;28 for (int i=0;i
Q.size())31 {32 Q.push(tu[i].v);33 }34 else35 {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\n",ans);43 return 0;44 }
View Code

 

转载于:https://www.cnblogs.com/haoabcd2010/p/7222405.html

你可能感兴趣的文章
CSS3 Filter的十种特效
查看>>
实用的eclipse adt 快捷键
查看>>
bootstrap 树
查看>>
Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明
查看>>
电容知识汇总
查看>>
【转】模块编译Android源码方法
查看>>
iOS8 CIGlassDistortion滤镜的使用
查看>>
windows运行打开服务命令的方法 :
查看>>
【C++】atoi与stoi
查看>>
Webservice soap wsdl区别之个人见解
查看>>
An Introduction to Garbage Collection(垃圾回收简介)
查看>>
提高tomcat的并发能力
查看>>
Delphi 中Format的字符串格式化使用说明(转)
查看>>
Drag & drop a button widget
查看>>
【转】 java中HashMap详解
查看>>
ODAC(V9.5.15) 学习笔记(一)总论
查看>>
Linux动态库搜索路径的技巧
查看>>
关于开源的RTP——jrtplib的使用
查看>>
非常特别的一个动态规划新手教程
查看>>
android FragmentPagerAdapter的“标准”配置
查看>>