贪心基础题(区间调度问题+POJ_3617+POJ_3069)

贪心法就是遵循某种规则,不断贪心地选取当前最优策略的算法设计方法.(贪心法和动态规划的区别)

1.区间调度问题

Q:一共有n项工作,每项工作的起始时间分别为s[i],e[i],你可以自主选择是否参加每项工作,现在希望能够参加最多的工作(每项工作决定了参加就必须全程参与),先想知道最多能参加多少项工作?

分析:这题的策略为贪心法,那么应该按照何种规则进行贪心呢?这里给出了四种贪心策略

        (1).每次选取开始时间最早的进行工作

        (2).每次选取结束用时最短的进行工作

        (3).每次选取最少重叠的进行工作

        (4).每次选取结束时间最早的进行工作

通过举反例可知,123规则都不可行,4可行.因为结束的越早,就能够留下更多的时间给后面的活动~

代码略(就是根据结束时间从小到大对活动进行排序,然后看下一个活动的开始时间是否大于结束时间,是的话就可以参加这个活动)


2.POJ_3617 Best Cow Line 

题目链接:https://vjudge.net/problem/POJ-3617

分析:给一个定长为N的字符串T,构造一个字符串S,长度也为N,构造规则为任意从T的头或尾取出一个字符(每次取一个),保证最后生成的字符串T的字典序最小.

感觉这题就是要处理一个问题--前后两个字符相等该怎么搞...如果相同的话一直往中间遍历,直至遇见不同,此时就输出大的那边的字符~然后重复操作.

参考代码:


                
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值