![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典贪心入门
文章平均质量分 66
Kaiattrib
我不是一个程序员
展开
-
活动安排问题二
问题 有若干个活动,第i个开始时间和结束时间是(S,E),活动之间不能交叠,要把活动都安排完,至少需要几个教室? 分析 因为要把所有活动都安排完,活动先按开始时间排序,第一个活动先开一个教室,如果下一个活动的开始时间大于等于上一个活动的结束时间,这个活动并入上一个教室,反之新开一个教室,应该比完所有的教室。 算法 先定义一个结构体,存放所有活动的时刻。定义一个数组存放每个原创 2016-07-12 22:31:13 · 1323 阅读 · 0 评论 -
独木舟问题
问题 n个人,已知每个人体重,独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? 分析 先排序,如果最重的人和最最轻的人如果可以共一条船就共用。不能共一条船,那么最重的那个人必须单独一条船。剩下的同样考虑。 算法 排序,下标i,j从前面和后面向中间移位。最后只有2种情况,原创 2016-07-15 00:10:43 · 517 阅读 · 0 评论 -
最大连续子序列和
求最大连续子序列和 分析: 用一个数组存入输入的数字。用一个变量temp从0开始往后加,存放累计的和,用SUM变量存放出现过的最大和。当temp遇到负数会减小,但不能初始化为0重新累计,因为后面还有可能出现正数,和会比前面SUM大的情况。只有当temp遇到负数减到小于0时,temp初始化为0重新开始加。 还有一种全是负数的情况,输出一个最大的负数。 代码: #in原创 2016-07-15 21:48:25 · 270 阅读 · 0 评论 -
分糖果 问题
问题: 输入N个人的的身高序列,高的人要比相邻矮的人分的糖果多,保证每个人至少有一颗糖果,请问最少需要多少颗糖果? 分析: 每个人都先有一颗糖果,先从前面遍历,发现后面的高度比前面的大,后面的应比前面多1,(需要注意是后面的人加,如果改成后面高度比前面小,前面加的情况,就不能统计累加的情况)然后从后面先前遍历,如果前面的比后面大,前面的在后面基础上加1。注意不是自己在原来的基础加1。原创 2016-07-16 22:06:49 · 674 阅读 · 0 评论