
贪心算法
Lawliet_ZMZ
ACMERandNODER
展开
-
POJ 1328 Radar Installation
难题,解题思想来自金海峰的博客,佩服大牛。下面为转载: 题意:平面上有一些点,现要求用一些圆心在x轴上的圆(雷达)来覆盖这些点,问最少需要多少雷达。 分析:我的解法是把点按横坐标排序,然后把每个点的雷达尽量往右放,然后每放一个雷达都要保证雷达左面的岛都被雷达所覆盖。所以我们可以按一个点靠右放完雷达后,再根据后面的在雷达位置左面的点,把雷达向左移。一个雷达经过了移的过程,就一定是能覆转载 2016-04-03 03:34:30 · 581 阅读 · 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 · 254 阅读 · 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 · 600 阅读 · 0 评论 -
POJ 2051 优先队列维护
Argus Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 11381 Accepted: 5506 Description A data stream is a real-time, continuous, ordered sequence of item原创 2017-04-05 20:48:17 · 456 阅读 · 0 评论 -
UVa - 11997 - K Smallest Sums贪心多路归并
K Smallest Sums You'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 · 604 阅读 · 0 评论 -
L2-003. 月饼 排序&贪心
L2-003. 月饼 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请原创 2017-03-17 18:39:05 · 524 阅读 · 0 评论 -
HDU 4442 排队贪心
Physical Examination Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 15 Accepted Submission(s) : 6 Problem Description WANGPENG is a fresh原创 2016-08-17 14:37:19 · 422 阅读 · 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 · 476 阅读 · 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 · 2135 阅读 · 0 评论 -
POJ 1017
#include using 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 · 471 阅读 · 0 评论 -
Gym-100712J 桶排序思想&反向思维
给一群儿童分配糖果,每位儿童只能一包,满足一些条件,“公平分配”: 相同年龄的分一样多,年龄大的必须分的比前者多。 三行,第二行是儿童的年龄,第三行是包里的糖果 思路: 数据够小,儿童年龄只在5到15,直接暴力,利用桶排序的思想,把儿童和糖果的数量存在a和b数组中,下标即是他们的标号,这样从1开始,默认就排了序。 从5到15岁数遍历,下标a是从5开始,b是从1开始, #i原创 2017-05-07 22:21:10 · 389 阅读 · 0 评论