sdau-1-贪心算法
wolf__L
如果有来生,要做一棵树,站成永恒,没有悲伤的姿势:一半在尘土里安详,一半在空中飞扬;一半散落阴凉,一半沐浴阳光。非常沉默非常骄傲,从不依靠从不寻找。
展开
-
Problem K-1010
概述:现在上课需要颜料进行讲课,然后给出了颜料的个数和需要的套数,但是灰色只能用三种不同的颜料混合出来,求一共需要最少几套颜料。思路:将颜料进行排序,先排除灰色外最多需要多少套颜料,需要的最大个数的颜料就是所需的套数,然后将剩下的进行排序,前三套组成灰色,可以成功就输出,不能就在增加一套,排序、混合,直到可以输出。感想:这道题在做的时候碰到了问题,将取余和除法弄混,然后找了好久改出,但是第原创 2016-03-31 18:39:29 · 303 阅读 · 0 评论 -
Problem R-1017
概述:现在有一批箱子需要包装,箱子大小分别是1*1,2*2,3*3,4*4,5*5,6*6,每一个大箱子只能放下一个6*6的箱子,求最多需要多少箱子。思路:对给出的数据排序,先从6*6开始装,一个箱子装一个,然后5*5的箱子可以放下1*1的,4*4的箱子可以放下2*2的,以此类推,然后可以求出最少箱子。感谢:原谅我写的有点晚,做完快一周了才写这篇博客。。。这是做的最后一个题,还有几道没做的原创 2016-04-07 22:37:02 · 302 阅读 · 0 评论 -
Problem E-1004
概述:输入若干节目的时间,求在一定时间内能看到的最大节目数量。思路:利用贪心算法,在有限的时间内尽可能的多安排能够观看的节目,然后将节目排序,将上一个节目的结束时间与下一个节目的开始时间进行比较,选出能够完整观看的节目。感想:第一道完成的题目,在第一次提交之前已经卡了三天,一直不理解贪心算法,再一次上课时理解,然后写完提交,只是代码的正确率存在着一些问题,最后在同学的帮助下改正题目,希望再原创 2016-03-21 08:56:41 · 212 阅读 · 0 评论 -
Problem A-1000
概述:一共有400个房间,需要在各个房间内搬运桌子,当搬运桌子的房间之间占用着同一个走廊时,那么每次只能有一张桌子能够被搬运,并且需要等待十分钟,当搬运时不在同一块走廊,那么可以同时搬运这些不重复的桌子。利用编程求给出的数据中能够最快搬运桌子需要花费的时间。思路:首先将房间号转换为对应的走廊号,然后将搬运桌子时重复的走廊号的次数相加,最后将次数对比求出最大的值,这个最大的值就是需要花费的最大时原创 2016-03-21 09:33:23 · 239 阅读 · 0 评论 -
Problem G—1006
概况:一个电梯从一楼开始运行,每上升一层楼所需时间是6S,每下降一层楼所需时间是4S,其中电梯在每层楼停止的时间是5S,现在输入一组数据,数据包括电梯将要停到的楼层,利用编程求出整个过程中所需的全部时间。思路:利用向量存取元素,使用贪心算法,将每一层楼的楼层分别与上一层楼的楼层数进行比较,求出其中的差值,然后利用已知条件求出每两层楼需要的时间,最后将所有时间相加求和。感想:在使用向量的过程原创 2016-03-21 11:23:14 · 313 阅读 · 0 评论 -
Problem Q-1016
概述:有N(N为奇数)头牛,每头牛都有不同的牛奶产量,现在需要找出这些牛之中产量为中位数的那头牛的产量。思路:将牛奶的产量进行排序,输出奶牛总数N的中间值即可。感想:一个简单的排序问题,理解题意后处理及其简单。#include#include#include#includeusing namespace std;int main(){ int N,x; while (原创 2016-03-22 12:26:06 · 278 阅读 · 0 评论 -
Problem F-1005
概述:主人公有很多零钱,现在需要买一本书,书的价格已经给出,而需要用手中的零钱凑出可以买这本书的钱,钱必须是正好凑出,然后输出能凑出钱的硬币的最大值和最小值。思路:求硬币的最小值只需要使用贪心算法处理即可,每次对书的金额进行整除处理,最后相加。求最大值的方式是将现有的硬币的总额减去书所需要的钱,然后计算得出的金额需要花费多少硬币,也就是将计算最小值的方式重复即可,最后用硬币的总数减去上一步得出原创 2016-03-22 20:38:24 · 687 阅读 · 0 评论 -
Problem B-1001
概述:现在有一个机器要加工一批木棒,现在对机器的要求是每次改进机器需要1分钟,而改装机器的要求是在加工木棒时下一根要加工的木棒比现在正在加工的木棒长度和重量都要大,若是小便需要改装机器。思路:先将每一根木棒按照从大到小的顺序排序,优先排序长度,在排序重量。在处理时用贪心算法,选出符合规定的木棒,对不符合规定的木棒进行标记,选完一次之后再将标记的木棒进行第二次筛选,一次次重复,直到不能筛选为止。原创 2016-03-23 12:27:57 · 288 阅读 · 0 评论 -
Preblme C-1002
概述:题目大体意思为古代的田忌赛马,现在要求将田忌赛马的过程用编程做出。思路:整个步骤使用贪心算法,将两个人拥有的马排序之后,将田忌最强的马与国王最强的马比较,若是能胜利,那么胜利加,若是不能,就将田忌最弱的马与国王最强的马比赛,以此类推。感谢:昨天晚上第一次提交,因为只是考虑了例子的输入,没有深入考虑整道题可能有的输入,题目出错,上午提交了几次,都是因为小错误或是超时失败,最后在同学帮助原创 2016-03-28 09:05:03 · 279 阅读 · 0 评论 -
Problem M-1012
概述:给定两个数字,n,p,求一个k,使得n的k次方等于p。思路:k的n次方等于p,反过来想,p的n分之一次方就是k。感谢:看到这道题的时候,第一反应就是用for循环,设定一个数从0开始求n次方,直到为所求的p值,但是,不出所料,果然超时,就转换了下方法。#include #include using namespace std;int main(){ double n, p原创 2016-03-28 09:25:57 · 288 阅读 · 0 评论 -
Problem I-1008
概述:问题同Problem-B-1001.思路:同1001#include#include#includeusing namespace std;struct wood //定义一组结构体,用来表示长和宽{ int longs; int weight; int flag;}strick[5001];bool原创 2016-03-28 09:39:40 · 244 阅读 · 0 评论 -
Problem N-1013
概述:acm公司每个月上报一次财务,每次上报连续五个月的财务,要求是这五个月上报的财务是亏损的,但是要求全年得到的财务室盈利的。思路:以五个月为一个层次,尽量将亏损的月份放在这五个月的后几个月,这样亏损的月在接下来的月份也能用上。感谢:题意没有看懂,题意没有看懂,题意没有看懂。。。整个题看完之后完全不明白在说什么,找人问了下题意,才明白这个题意。然后解题就简单了,但是一直WA。。。找人原创 2016-03-28 10:28:56 · 325 阅读 · 0 评论 -
Problem E-1015
概述:现在奶酪加工厂要生产奶酪,每个周需要生产等单位的奶酪需要花费的金钱不同,并且每个周的出货量不同,现在可以提前生产储存起来,但是储存需要每个周缴纳一定的金钱,求怎么样才能花费最少的金钱。思路:只需要每个周产的奶酪加上储存费用是否比下个周产出的奶酪贵即可。感想:这个题的思路是从其他人的博客上看到的,因为自己做出来以后没有办法得到输出,看到别人的思路以后发现是自己考虑多了,不需要考虑做一半原创 2016-03-29 16:34:49 · 229 阅读 · 0 评论 -
Problem O-1014
概述:现在有一艘船运输车辆,每次运输限定了运输量和运输时间,每辆车到的时间不同,现在求最小运输时间和最小运输次数。思路:每次将船装满,最短时间就是最后一辆车到来的时间,关于最少次数要求最后一次不用回来,就是最少次数。感谢:这个题没有思路,题的思路是看的别人的,知道思路之后才自己做的,不过在提交又犯了那个问题!!!!!调试完又忘了删掉调试代码!!#include#include#incl原创 2016-03-31 21:41:16 · 406 阅读 · 0 评论 -
贪心算法总结
贪心算法是指求出当前状态的最优解,我个人的理解(讲真,贪心算法的意思刚学的第一个周里根本没绕明白,花了一个星期去寻思题意,才明白的)是一个大的问题分开来求,将一个大打问题划分为小问题,然后再求出这些小问题的最优解,然后小问题最优解合起来就是一整个大问题的最优解。整个贪心算法没有固定的思路,只是选取一个合适的贪心策略(讲道理,这个贪心策略到底指啥,我从开始学一直到现在都不理解它究竟是个什么东西,原创 2016-04-07 23:04:04 · 610 阅读 · 0 评论