贪心
文章平均质量分 72
Matrix1254
爱代码,爱加班,爱咖啡可乐
爱挑战,爱钻研,爱打游戏
爱晚起,也爱工作到深夜。
我擅长技术,崇尚简单和懒惰
我神秘而孤僻,沉默而爱憎分明
我行我素,我是程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 1009 FatMouse' Trade
很简单的贪心,先按性价比排序,依次加上能afford的bean,直到room遍历完或者cat food用完了。。若只是cat food用完了,room还没遍历完,则加上剩下的cat food所能换取的bean。 AC代码: #include #include #include #define MAX_LEANGTH 1005 struct Room{ int bean; i原创 2012-12-07 21:08:05 · 590 阅读 · 0 评论 -
hdu 1050 moving tables
实质就是求最大重叠度,难点是奇数房和偶数房是对应的,如1和2是对应的,3和4是对应的,共用一段走廊,要这样处理:(i+1)/2。如3到4,4到5,重叠度是2。陷阱是区间可能从大到小。 AC代码: #include using namespace std; #define NUM 405 int a[NUM]; int main() { int cases,n,s,t,iMax,i,j;原创 2013-02-05 12:39:29 · 432 阅读 · 0 评论 -
hdu 1789 Doing Homework again
想了半天没想出来,后来参考了别人的思路。先按reduced从大到小排,对于每个homework,若它的deadline日期上无homework,就安排它,若已有homework,就往前推,直到找到一个日期安排。若实在找不到,就加到sum。最后输出sum即可。 AC代码: #include using namespace std; #define NUM 1005 struct hw原创 2013-02-05 13:03:07 · 479 阅读 · 0 评论 -
hdu 2037 今年暑假不AC
题目实质是求一定区间内最多事件序列,采用贪心,提出假设:至少有一个最多事件序列包含最早结束的事件,可以用反证法证明,若a1....an是一个最多事件序列,则a0...an也是一个最多事件序列(a0是最早结束的事件)。所以贪心策略为:每次都选择最早结束的事件。具体方法是,按结束时刻排序,每次找不冲突的最早的开始事件。 AC代码: #include using namespace std;原创 2013-02-05 13:15:45 · 478 阅读 · 0 评论 -
hdu 1052 Tian Ji -- The Horse Racing
贪心思路:田忌要用最小的代价(最慢的马)输一场比赛,而要耗费掉齐王最大的资源;齐王用最大的代价赢田忌,以最大的代价输田忌。 先把田忌和国王的马排序。 每次取田忌的最快的马与国王最快的马比较,有三种情况。 一,田忌最快的马比国王最快的快,那么直接拿田忌最快的马去赢国王最快的马。 二,田忌最快的马比国王最快的慢,那么拿田忌最慢的马去输国王最快的马。 三,田忌最快的马与国王最快的马速度一样。原创 2013-02-05 13:46:15 · 985 阅读 · 0 评论 -
hdu 1051 Wooden Sticks
对木棍的长度和重量进行排序,以长度为首要考虑。排序完后的不一定都是下一根木棍重量和长度都大于前一根的。于是,我们对排序后的数组进行多次扫描,将可以在一次建立时间内完成的进行标记,设置一个外部变量number来计数已扫描的元素的数量。 例子: 5 4 9 5 2 2 1 3 5 1 4 排序完后: 1 4 2 1 3 5 4 9 5 2 然后进行第一次扫描:使用mar原创 2013-02-06 10:33:19 · 630 阅读 · 0 评论 -
hdu 1007 Quoit Design
题目是要求最近点对的距离,采用简单贪心:按x+y来排序,再一次遍历,求出相邻点对的最小距离。用G++一直TLE,实在是无语,看了discuss,有人说要用C++提交,结果用C++就直接AC了。另一位大牛用的暴力搜索,时间居然比我贪心还少,难以理解。 AC代码: #include #include #include #include #include using namespace std; #原创 2013-02-07 10:28:22 · 545 阅读 · 0 评论 -
pat 1033 To Fill or Not to Fill(值得重点回顾)
有点难度的贪心题,贪心策略有点绕,得静下心来分析,同时得增强自己的代码能力。实质是汽车加油问题。 贪心策略:假设现在自己处于A站,要考虑的是A站要不要加油,加多少油的问题。找到下一个要加油的站B(距离A站cmax*davg范围内的最便宜的站)。 1. A站油价比B价高,现在油箱里还有油,能跑到B站,那就不加油,直接跑去(这里B站跟2,3情况不同,是距离A站currGas*davg范围内的最便宜原创 2013-03-06 10:10:06 · 2514 阅读 · 1 评论
分享