栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

总结014—贪心

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

总结014—贪心

这周先看完《算法笔记》《深入浅出》《信息学奥赛一本通》上的贪心内容,然后再看的文章。这三本书上的贪心内容感觉都差不多,其中《信息学奥赛一本通》上的例题感觉很好。

看文章中的题的时候,题中也涉及到哪些问题需要用贪心来解决,比如:树的最短路径覆盖,线段上的最少点覆盖,选择先后手问题。还有些题目用贪心+某种算法(并查集,排序,枚举,优先队列,高精度)。

贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择

贪心算法基本思路(一本通上有)

1、建立数学模型描述问题   

2、把求解问题分成若干子问题

3、对每个问题求解,得到子问题的局部最优解

4、把子问题的解局部最优解合成原来解问题的一个解

通过引用几道题来了解一下贪心思想

UOFTCG - Office Mates

题意:N个学生,M对朋友关系,学生只能挨着朋友,桌子排成一条直线,中间座位可空出来,求最至少需要多少张桌子

题解(贪心思想):树的最短路径覆盖

F. Family Photos

题意:n对照片,每张照片有a,b两值,a表示Alice喜悦值,b表示Bonnie喜悦值,Alice先选。所有照片都已取走或连续两轮两人都不取时游戏结束,A的幸福感为x,B的幸福感为y,打印最大x-y。

题解(贪心思想):当a1<=b2&&b1<=a2时直接忽略,当a1>b2||b1>a2时必有一方有正收益,这时不得不选择先手,其余情况正常选择

Problem D. Ice Cream Tower

题意:n个冰淇淋球,做出k个冰淇淋球,上下两球相邻且下边质量>=上面球的二倍,后面一行n个数,给出n个球的质量,求最多做出多少冰淇淋

题解:(看的题解)假设能做出x个冰淇淋,先安排上最上面那个球,贪心的思想,肯定取最小的x个,然后后面的类似取,线性扫一遍n,判断能否取x个

1821 最优集合 

题意:(集合元素可以重复)优美值定义:最大的x,满足i属于[1,x],存在S的子集S0,使得S0中的元素之和为i指定集合S1和S2,从S2中选出子集S3,使得S3<=k,求S1 U S3的优美值最大。

题解:贪心+并查集

下面写一个洛谷上删数问题

贪心策略:每一步总是选择一个使剩下的数最小的数字删去,及按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字;否则删除第一个递减区间的首字符,这样删一位便形成了一个新数字串。然后回到首串,按照上述规则再删下一个数字。重复以上过程s次为止。程序框架如下:

	//输入n,s;
    for(int i=1;i<=s;i++)//删除s个字符 
	{
		for(int j=0;jn[j+1])//找到第一个符合条件的 
			{
				for(int k=j;k 

这周看贪心的文章看的也不是很多,其中有些文章看的我也是有点懵。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935013.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号