noip2010 基础算法整理

noip2010 基础算法整理

ID:34573353

大小:74.25 KB

页数:10页

时间:2019-03-08

noip2010 基础算法整理_第1页
noip2010 基础算法整理_第2页
noip2010 基础算法整理_第3页
noip2010 基础算法整理_第4页
noip2010 基础算法整理_第5页
资源描述:

《noip2010 基础算法整理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、NOIP2010基础算法整理(Pascal版)IKoala.Guan2010-10-7修正I.排序算法A.快速排序(Quicksort)procedureqs(p,q:longint);vari,j,k,mid:longint;Beginmid:=a[(p+q)div2];i:=p;j:=q;repeatwhilea[i]{!}middodec(j);ifi<=j{!}thenbegink:=a[i];a[i]:=a[j];a[j]:=k;inc(i);dec(j);end;u

2、ntili>j;ifp

3、k:=2*i;end{Exchange.}elsek:=m+1;{Break.}NOIP2010基础算法整理-1-end;a[i]:=a[0];{Placethecorrectleaf.}end;Beginreadln(n);fori:=1tondoread(a[i]);forj:=ndiv2downto1dosift(j,n);{Arrangethetree.}forj:=ndownto2dobeginswap(1,j);{Makeeveryleafintotheroot.}sift(1,j-1);{Arrangethetre

4、e.}end;fori:=1ton-1dowrite(a[i],'');writeln(a[n]);end.II.数论算法A.最大公约数和最小公倍数functiongcd(a,b:integer):integer;beginifb=0thengcd:=aelsegcd:=gcd(b,amodB);end;functionlcm(a,b:integer):integer;beginifa0doinc(lcm,a);end;NOIP2010基础算法整理-2-II

5、I.图论算法A.最小生成树——Prim算法procedureprim(v0:integer);varlowcost,closest:array[1..maxn]ofinteger;i,j,k,min:integer;beginfori:=1tondobeginlowcost[i]:=cost[v0,i];closest[i]:=v0;end;fori:=1ton-1dobegin{寻找离生成树最近的未加入顶点k}min:=maxlongint;forj:=1tondoif(lowcost[j]

6、]<>0)thenbeginmin:=lowcost[j];k:=j;end;lowcost[k]:=0;{将顶点k加入生成树}{生成树中增加一条新的边k到closest[k]}{修正各点的lowcost和closest值}forj:=1tondoifcost[k,j]

7、边加入最小生成树。functionfind(v:integer):integer;{返回顶点v所在的集合}vari:integer;begini:=1;while(i<=n)and(notvinvset[i])doinc(i);ifi<=nthenfind:=ielsefind:=0;end;procedurekruskal;vartot,i,j:integer;beginfori:=1tondovset[i]:=[i];{初始化定义n个集合,第i个集合包含一个元素i}p:=n-1;q:=1;tot:=0;{p为尚待加入的边数,

8、q为边集指针}sort;{对所有边按权值递增排序,存于e[i]中,e[i].v1与e[i].v2为边i所连接的两个顶点的序号,e[i].len为第i条边的长度}whilep>0dobegini:=find(e[q].v1);j:=find(e[q].v2);if

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。