![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心算法
Lawliet_ZMZ
ACMERandNODER
展开
-
POJ 1328 Radar Installation
难题,解题思想来自金海峰的博客,佩服大牛。下面为转载:题意:平面上有一些点,现要求用一些圆心在x轴上的圆(雷达)来覆盖这些点,问最少需要多少雷达。分析:我的解法是把点按横坐标排序,然后把每个点的雷达尽量往右放,然后每放一个雷达都要保证雷达左面的岛都被雷达所覆盖。所以我们可以按一个点靠右放完雷达后,再根据后面的在雷达位置左面的点,把雷达向左移。一个雷达经过了移的过程,就一定是能覆转载 2016-04-03 03:34:30 · 552 阅读 · 0 评论 -
Gym 100712E 贪心
贪心思想:叫兽给学生门统一增加一份额外的分数,但是加了这个分数的最高也不能超过100分,求最多能过多少人?肯定是先算出最多加多少分,排序然后一个个遍历即可#include using namespace std;int main(){ int T; cin>>T; int a[105]; while(T--) { in原创 2017-05-07 21:47:38 · 238 阅读 · 0 评论 -
4.6组队赛H题分石头问题,推导,规律
题意:Con先手,把每堆石头分成另外二部分,当每堆的石头都为1时当前人输。首先我们取最大的那个堆来考虑,不要按照模拟这个游戏的过程的思路走,因为最后是最大的那个堆影响结果,小的堆或者分的小的堆可以直接忽略。设当前最大堆石头数量是否能赢的状态为y,那么如果y是必败态,那么y+1,y+2,…,2*y都是必胜态,2*y+1是必败态,如果y是必败态 那么y+1,y+2,…,2*y 我都可以原创 2017-04-07 17:17:47 · 571 阅读 · 0 评论 -
POJ 2051 优先队列维护
ArgusTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 11381 Accepted: 5506DescriptionA data stream is a real-time, continuous, ordered sequence of item原创 2017-04-05 20:48:17 · 425 阅读 · 0 评论 -
UVa - 11997 - K Smallest Sums贪心多路归并
K Smallest SumsYou're given k arrays, each array has k integers. There are kk ways to pick exactly one element in each array and calculate the sum of the integers. Your task is to find the k smalles原创 2017-04-03 17:35:35 · 577 阅读 · 0 评论 -
L2-003. 月饼 排序&贪心
L2-003. 月饼时间限制100 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请原创 2017-03-17 18:39:05 · 502 阅读 · 0 评论 -
HDU 4442 排队贪心
Physical Examination Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 15 Accepted Submission(s) : 6Problem DescriptionWANGPENG is a fresh原创 2016-08-17 14:37:19 · 395 阅读 · 0 评论 -
HDU Saving HDU 2111
如果体积不足,这时候就应该停止,否则如果n够大v会继续累加else的值,刚开始的WA就在这里#include #include #include #include #include using namespace std;struct member{ int price; int num;; }Ar[110];int cmp(member a,member原创 2016-04-22 18:30:44 · 460 阅读 · 0 评论 -
POJ 1700 过河坐船最短时间问题
这道题如果理解了就不难了,可分为一步步两个永远最快的a[0],a[1]载现存的两个最慢的过河的问题,一种是最快a[0]载现存最慢过去,0再回来,再载次慢,0再回来,时间为2*a[0]+a[p-2]+a[p-1],或者01过去,0回来,34过去(不可能0再载3或者4过去,那就浪费了第一次0载1过去的意义,等于在第一种方案基础上把34载过去又把2载过去),2回来,时间为a[0]+2*a[1]+a[p-原创 2016-04-02 21:02:18 · 2114 阅读 · 0 评论 -
POJ 1017
#includeusing namespace std;int main(){int s1[4]={0,7,6,5}; //根据n3%4,判断此包中填入3*3,尽可能填2*2后还能填入1*1的个数(数组下标分别对应取余的0,1,2,3)int s2[4]={0,5,3,1}; //根据n3%4,判断此包中填入3*3后还能填入的2*2的个数int n1,n2,原创 2016-04-06 15:03:18 · 447 阅读 · 0 评论 -
Gym-100712J 桶排序思想&反向思维
给一群儿童分配糖果,每位儿童只能一包,满足一些条件,“公平分配”:相同年龄的分一样多,年龄大的必须分的比前者多。三行,第二行是儿童的年龄,第三行是包里的糖果思路: 数据够小,儿童年龄只在5到15,直接暴力,利用桶排序的思想,把儿童和糖果的数量存在a和b数组中,下标即是他们的标号,这样从1开始,默认就排了序。从5到15岁数遍历,下标a是从5开始,b是从1开始,#i原创 2017-05-07 22:21:10 · 367 阅读 · 0 评论