NOIP基础算法——贪心和分治幻灯片课件.ppt

NOIP基础算法——贪心和分治幻灯片课件.ppt

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NOIP基础算法——贪心和分治;一、分治思想;二、分治法的适用条件;三、分治的三步骤;分治算法设计过程图;在划分问题时,可以采用递归策略,把一个大问题逐步分解成规模较小的子问题,直至可以直接求出子问题的解;再将子问题逐层合并,返回到顶层,得到原问题的解。 根据分治策略的划分原则,把原问题划分成多少个子问题才合适呢?各个子问题的规模应该多大才合适呢? 一般来说,每次划分成2个子问题,每个子问题的规模差不多最合适。合并解时要因题而异,有些问题递归分解完能直接得到原问题的解,有些问题需逐层合并,得到原问题的解。;四、分治的框架结构;五、分治的典型应用;1、求最大值和最小值;【方法2】分治策略 划分:把n个数均分为两半。即:划分点为d=(r1+r2)/2,两个区间为[r1,d]和[d+1,r2]。 递归求解:求左半的最小值min1 和最大值max1以及右半最小值min2和最大值max2。 合并:max1与max2比较得到所有数的最大值为maxx; min1与min2比较得到所有数的最小值为minn。;procedure pd(r1,r2:integer;var maxx,minn:integer) begin var max1,min1,max2,min2,d:integer; if r1=r2 then begin maxx:=x[r1]; minn:=x[r1];end else if r2=r1+1 then begin if x[r2]x[r1] then begin maxx:=x[r2];minn:=x[r1];end else begin maxx:=x[r1];minn:=x[r2];end end else begin d:=(r1+r2)/2; pd(r1,d,max1,min1); pd(d+1,r2,max2,min2); if max1max2 then maxx:=max1;else maxx:=max2; if min1min2 then minn:=min1;else minn:=min2; end end;2、求方程的根;分析;分析;分析;核心参考代码;3、归并排序;;分析;核心参考代码;【变形1】求逆序对数目;方法1:朴素算法;求逆序对的方法:;方法2:分治策略;和归并排序一样,划分和递归求解都好办,关键在于合并:如何求出i在左边,而j在右边的逆序对数目呢?统计的常见技巧是“分类”。我们按照j的不同把这些“跨越两边”的逆序对进行分类:只要对于右边的每个j,统计左边比它大的元素个数f(j),则所有f(j)之和便是答案。 幸运的???,归并排序可以帮助我们“顺便”完成f(j)的计算:由于合并操作是从小到大进行排序的,当右边的a[j]复制到T中时,左边还没有来得及复制到T的那些数就是左边所有比a[j]大的数。此时累加器中加上左边元素个数mid-i+1即可。 即把“if(a[i]a[j])then begin temp[p]:=a[j];inc(p);inc(j);end 改为“if(a[i]a[j])then begin tot:=tot+mid-i+1;temp[p]:=a[j];inc(p);inc(j);end;4、二分查找;方法2:二分查找;实现方法1:二分查找的递归实现;实现方法2:二分查找的非递归实现 ;【扩展1】二分查找求下界,即第一次出现的位置 function Erfen(L,r,x:integer):integer; begin var mid:integer; while(Lr)do begin mid:=(L+r)div 2; if x=a[mid] then r:=mid else L:=mid+1; end; Erfen:= L; end; 【扩展2】二分查找求

文档评论(0)

zjq110 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档