- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贪心算法例子课件
Chapter 5 贪心法实例; 顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。
当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。;活动安排问题;活动安排问题;活动安排问题;活动安排问题;活动安排问题;活动安排问题;活动安排问题;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;贪心算法的基本要素;删数问题;算法分析;1;程序;quee *init()
{
char str[250];
quee *n;
node *tmp;
node * tail;
n=new quee;
n-first=NULL;
cinstr;
cins;
int i=0;
while(str[i]!=\0)
{
tmp=new node;
tmp-c=str[i];
tmp-next=NULL;
if(n-first==NULL)
{
n-first=tmp;
tail=tmp;
}
else
{
tail-next=tmp;
tail=tmp;
}
i++;
}
return n;
};;void del(quee *start, node *p)
{
node *x;
x=start-first;
if (x-next)
{
while(x-next!=p) x=x-next;
}
x-next=p-next;
delete p;
};;void print(quee *start)
{
node *tmp;
if(start-first==NULL) return;
tmp=start-first;
while(tmp)
{
printf( %c,tmp-c);
tmp=tmp-next;
}
printf(\n);
};;node *find(quee *start)
{
node *tmp;
tmp=start-first;
while(tmp-next!=NULL tmp-c=tmp-next-c)
tmp=tmp-next;
return tmp;
};
;int main(int argc, char* argv[])
{
quee *n;
node *p;
n=init();
while(s!=0)
{
p=find(n);
del(n,p);
s--;
}
print(n);
return 0;
}
;POJ 1017;Packets;Packets;Packets;Packets;;Packets;Packets;Packets;Packets;Packets;Packets; 6) 放 1 * 1 并输出结果
if( b1 c1 ) {
nTotal += ( b1 - c1 ) / 36;
if(( b1 - c1) % 36 )
nTotal ++;
}
cout nTotal endl;;#include iostream.h
int Contain1[4] = { 0, 7, 6, 5 };
int Contain2[4] = { 0, 5, 3, 1 };
int nTotal;
void main() {
int b1,b2,b3,b4,b5,b6;
for(;;) {
cinb1b2b3b4b5b6;
if(b1==0 b2==0 b3==0 b4==0 b5==0 b6==0)
break;
nTotal = b6 + b5 + b4 + b3/ 4;
if( b3 % 4) nTotal ++;
int c1; //当前能放 1*1 木块的空格数目
c1 = b5 * 11; //每个放5*5的箱子,还能放11个 1 * 1 的木块
c1 += Contain1[b3 % 4] ; //加上3*3箱子里能放的数目
int c2; //当前能放 2*2 木块的空格数目(先不考虑将1*1的木块放在 // 2*2的空格里)
c2 = b4 * 5; //每个放5*4的箱子,还能放5个 2 * 2 的木
文档评论(0)