地鼠游戏 Codevs No.1245

Posted Neptune

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了地鼠游戏 Codevs No.1245相关的知识,希望对你有一定的参考价值。

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 }

 

以上是关于地鼠游戏 Codevs No.1245的主要内容,如果未能解决你的问题,请参考以下文章

贪心法 codevs 1052 地鼠游戏

CODEVS——T1052 地鼠游戏

codevs 1052:地鼠游戏

codevs1052 地鼠游戏

基于Java语言的打地鼠的小游戏源代码是啥?

ios打地鼠游戏源代码