重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
贪心算法
创新互联专注于祥符网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供祥符营销型网站建设,祥符网站制作、祥符网页设计、祥符网站官网定制、微信平台小程序开发服务,打造祥符网络公司原创品牌,更为您提供祥符网站排名全网营销落地服务。
1.概念
贪心算法是从问题的某一个初始解出发逐步逼近给定的目标,以
尽可能快地求得更好的解。当达到某算法中的某一步不能再继续
前进时,算法停止。这时就得到了问题的一个解,但不能保证求
得的最后解是最优的。在改进算法中,贪心算法演化为爬山法。
2.特点及使用范围
贪心算法的优点在于时间复杂度极底。贪心算法与其他最优化算
法的区别在于:它具有不可后撤性,可以有后效性,一般情况下
不满足最优化原理。贪心算法的特点就决定了它的适用范围,他
一般不适用于解决可行性问题,仅适用于较容易得到可行解的最
优性问题。这里较容易得到可行解的概念是:当前的策略选择后,
不会或极少使后面出现无解的情况。另外,对于近年来出现的交
互性题目,贪心算法是一个较好的选择。这是因为,在题目中,
一个策略的结果是随题目的进行而逐渐给出的,我们无法预先知
道所选策略的结果,这与贪心算法不考虑策略的结果和其具有后
效性的特点是不谋而合的。当然,贪心算法还可以为搜索算法提
供较优的初始界值。
LZ在开始研究ACM嘛?
#include
int
least_num_cash(int
_money)
{
/*直接贪心,能用大张的钞票尽量用大张的*/
int
ret=0;
while(_money!=0)
{
if(_money=100)
{
_money-=100;
}
else
if(_money=50)
{
_money-=50;
}
else
if(_money=20)
{
_money-=20;
}
else
if(_money=10)
{
_money-=10;
}
else
if(_money=5)
{
_money-=5;
}
else
if(_money=2)
{
_money-=2;
}
else
if(_money=1)
{
_money-=1;
}
ret++;
}
return
ret;
}
int
main()
{
int
n,m;
while(scanf("%d%d",n,m)!=EOF)
{
printf("%d\n",least_num_cash(m-n));
}
return
0;
}
多塔问题??
可用动态规划试一下。。
记录m台机器中使用时间最长的,时间为Tmax,以及其它m-1台机器所用时间为Ti。
将Ti与Tmax时间差的和记录为St。则St越小时间Tmax越短。