地鼠游戏 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 }
时间: 2024-10-25 06:17:20

地鼠游戏 Codevs No.1245的相关文章

CODEVS——T1052 地鼠游戏

 http://codevs.cn/problem/1052/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在每次考试中得到优异的分数,这一切很大程度上是由于他是一个追求效率的人. 但王钢也是一个喜欢玩的人,平时在学校学习他努力克制自己玩,可在星期天他却会抽

codevs 1052:地鼠游戏

http://codevs.cn/problem/1052/ 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在每次考试中得到优异的分数,这一切很大程度上是由于他是一个追求效率的人. 但王钢也是一个喜欢玩的人,平时在学校学习他努力克制自己玩,可在星期天他却会抽一定的时间让自己玩一下,他的爸爸妈妈也比较信任他的学习能力和学习习惯,所以在星期天也不会象其他家长一样对他抓紧

codevs 1052 地鼠游戏 优先队列

1052 地鼠游戏 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.codevs.cn/problem/1052/ Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在每次考试中得到优异的分数,这一切很大程度上是由于他是一个追求效率的人. 但王钢也是一个喜欢玩的人,平时在学校学习他努力克制自己玩,可在星期天他却会抽一

贪心法 codevs 1052 地鼠游戏

1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在每次考试中得到优异的分数,这一切很大程度上是由于他是一个追求效率的人. 但王钢也是一个喜欢玩的人,平时在学校学习他努力克制自己玩,可在星期天他却会抽一定的时间让自己玩一下,他的爸爸妈妈也比较信任他的学习能力

codevs1052 地鼠游戏

题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在每次考试中得到优异的分数,这一切很大程度上是由于他是一个追求效率的人. 但王钢也是一个喜欢玩的人,平时在学校学习他努力克制自己玩,可在星期天他却会抽一定的时间让自己玩一下,他的爸爸妈妈也比较信任他的学习能力和学习习惯,所以在星期天也不会象其他家长一样对他抓紧,而是允许他在星期天上午可以自由支配时间. 地鼠游戏是一项需要

地鼠游戏

时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在每次考试中得到优异的分数,这一切很大程度上是由于他是一个追求效率的人. 但王钢也是一个喜欢玩的人,平时在学校学习他努力克制自己玩,可在星期天他却会抽一定的时间让自己玩一下,他的爸爸妈妈也比较信任他的学习能力和学习习惯,所以在星期天也

最小的N个和 Codevs No.1245

2016-05-31 18:52:15 题目链接: 最小的N个和 Codevs No.1245 题目大意: 给两个等长数列,各取一个数求和,找到最小的N组 解法: 堆优化的大暴力 直接枚举所有可能在最大堆中更新,删除最大组合 需要注意的地方: 1.如果任何一个加数大于等于堆顶元素,break 2.如果两者之和已经大于等于堆顶元素,break 1 //最小的N个和 (Codevs No.1245) 2 //堆(优先队列) 3 #include<stdio.h> 4 #include<alg

codves1052 地鼠游戏 贪心

codves1052 地鼠游戏 贪心 题意 有n只地鼠,一开始地鼠是全部钻出来的,每只地鼠有钻出来的持续时间,t,或者说在t秒会钻回去,不再钻出来以及打掉的分数,打一次地鼠我们需要一秒时间,求最多能获得的分值这题其实相当于 对于每一只地鼠 我们只能在 0--ti-1这段时间内打 然后我们可以将 ti消失时间排个序 然后从最大T 枚举下去 枚举到t时,我们把消失时间 > t 的地鼠加到大根堆里面,表示t 这秒可以打这些地鼠, 然后我们每一秒取堆中的最大值就行了 这样其实就是你存在堆中的表示你一直能

1052 地鼠游戏

1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在每次考试中得到优异的分数,这一切很大程度上是由于他是一个追求效率的人. 但王钢也是一个喜欢玩的人,平时在学校学习他努力克制自己玩,可在星期天他却会抽一定的时间让自己玩一下,他的爸爸妈妈也比较信