ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:29.25KB ,
资源ID:3440949      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3440949.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自学版完善程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

自学版完善程序.docx

1、自学版完善程序第四次初赛复习(完善程序)28金蝉素数*【问题描述】某古寺的一块石碑上依稀刻有一些三位与四位的神秘自然数。专家研究发现:这些数是素数,且从低位去掉一位,或两位,后都仍为素数,从高位去掉一位,或两位,后也都仍为素数,更奇妙的是同时去掉它的最高位与最低位数字后还是素数。因此,人们把这些神秘的素数称为金蝉素数,喻意金蝉脱壳之后仍为美丽的金蝉。试求出石碑上的金蝉素数。【程序清单】var a: array1.400of integer; s,u,i,j,k,l,v,t,m,w,n:integer;begin a1:=2; a2:=3; a3:=5; a4:=7; u:=4; for k:=

2、 11 to 9999 do if k mod 2=1 then begin j:=3; while ( 1 ) and(k mod j0) do j:=j+1; if jtrunc(sqrt(k) then begin if au100 then begin L:=trunc(ln(k)/ln(10)+1; t:=1;s:=0; for i := 1 To ( 2 ) do begin t:=t*10; w:=trunc(k/t); m:=k-w*t; V:=1;n:=10000; if i=L-1 then n:=trunc(m/10); while (av=w) or ( 3 ) do

3、begin if av=w then s:=s+1; if av=m then s:=s+1; if av=n then s:=s+1; ( 4 ); end; end; if ( 5 ) then writeln(k); end; end; end;end.结束28金蝉素数(1)j=trunc(sqrt(k) (2)L-1 (3) av=m (4)inc(v) (5)s=2*L-129、多项式乘法运算【问题描述】多项式乘法运算:p(x)=2x2-x+1,q(x)=x+1 p(x)*q(x)=(2x2-x+1)(x+1)=2x3+x2+1【程序说明】多项式的表示:系数、指数如上例:p(x) 系

4、数 指数 q(x) 系数 指数 2 2 1 1 -1 1 1 0 1 0 0 0 0 0p*q的结果存入c中。其输出格式是:依次用一对括号内的(系数、指数)分别来表示。如上例的输出结果表示为:(2,3)(1,2)(1,0)【程序清单】begin jp:=0; readln(x,y); while x0 do begin jp:=jp+l; pjp,1:=x; pjp,2:=y; readln(x,y); end; jq:=0; readln(x,y); while x 0 do begin jq:=jq+1; qjq,1:=x; qjq,2:=y; readln(x,y); end; jc:=

5、1; cjc,1:=0; cjc,2:=-1000; for i:= 1 to jp do begin _( 1 )_ y:=pi,2; for j:= 1 to jq do begin _( 2 )_ y1:=y+qj,2; k:=1; while y1 ck,2 do k:=k+1; if y1 = ck,2 then _( 3 )_ else begin for L:= jc downto k do begin cL+1,1:=cL,1; cL+1,2:=cL,2; end; ck,1:=x1;ck,2:=y1; _( 4 )_ end; end; end; for i:=1 to jc

6、 do if _( 5 )_ then write(,ci,1,ci,2,) ;end.29、多项式乘法运算(1)x:=pi,1 (2)x1:=x*qj,1 (3)ck,1:=ck,1+x1 (4)inc(jc) (5)ci,1030、求最长不下降序列【问题描述】设有由n个不相同的整数组成的数列,记为:a(1)、a(2)、a(n)且a(i)a(j) (ij),例如3,18,7,14,10,12,23,41,16,24。若存在i1i2i3 ie 且有a(i1)a(i2) a(ie)则称为长度为e的不下降序列。如上例中3,18,23,24就是一个长度为4的不下降序列,同时也有3,7,10,12,1

7、6,24长度为6的不下降序列。程序要求,当原数列给出之后,求出最长的不下降序列。【算法分析】根据动态规划的原理,由后往前进行搜索。1对a(n)来说,由于它是最后一个数,所以当从a(n)开始查找时,只存在长度为1的不下降序列;2若从a(n-1)开始查找,则存在下面的两种可能性:若a(n-1)a(n)则存在长度为1的不下降序列a(n-1)或a(n)。3一般若从a(i)开始,此时最长不下降序列应该按下列方法求出:在a(i+1),a(i+2),a(n)中,找出一个比a(i)大的且最长的不下降序列,作为它的后继。4为算法上的需要,定义一个数组整数类型二维数组d(N,3)d(I,1)表示点a(i)d(I,

8、2)表示从I位置到达N的最长不下降序列长度d(I,3)表示从I位置开始最长不下降序列的下一个位置【程序清单】const maxn=100;type tlist=array1.maxn,1.3of integer;var d:tlist;n:byte;procedure init;var i:integer;begin readln(n); for i:=1 to n do begin read(di,1);di,2:=1;di,3:=0;end;end;procedure make;var i,j,p,L:longint;begin for i:= _(2)_ do begin L:=0;p:

9、=0; for j:=i+1 to n do if (di,1L) then begin L:=dj,2;_(3)_;end; if _(4)_ then begin di,2:=L+1;di,3:=p; end; endend;procedure output;var i,L,dmax:longint;begin write(;SOURCE:); for i:=1 to n do write(di,1:5); writeln;dmax:=d1,2;L:=1; for i:=2 to n-1 do if di,2dmax then begin _(5)_;L:=i;end; write(RES

10、ULT IS: ); while L0 do begin write(dL,1:5);L:=dL,3);end; writeln; writeln(MAX LENGTH=,ddmax,2);end;begin init; make; output;end.30、求最长不下降序列(2)n-1 downto 1 (3)p:=j (4)L0 (5)dmax:=di,21单源点最短路径:给定带权有向图G=(v,e),源点v1在v中,求v1到v中其余各结点的最短路径。数据结构说明:costI,j:表示带权有向图的邻接矩阵dj:表示从v1到vj的最短路径长度pathj:表示从v1到vj的最短路径程序如下:

11、program t5;const n=5; maxnum=1e10;type gr=array1.n,1.n of real; dt=array1.n of real; jh=set of 1.n; pt=array1.n of jh;var s:jh;cost:gr;d:dt;path:pt; i,j,k:integer; mm:real;begin for i:=1 to n do for j:=1 to n do read(costi,j); s:=1; for i:=2 to n do begin di:=cost1,i; if di maxnum then pathi:=1+i el

12、se _(1)_ end; for i:=1 to n-1 do begin mm:=maxnum; for j:=2 to n do if _(2)_ then begin mm:=dj;k:=j; end; s:=s+k; for j:=2 to n do if not(j in s) and (costk,j ,v,i,:,di); write(v1); for j:=2 to n do if j in pathi then write(-,v,j); writeln; end;end. 2(好题!). 问题描述:将n个整数分成k组(kn,要求每组不能为空),显然这k个部分均可得到一个各

13、自的积p1,p2,pk,定义整数S为:S=(p1-p2)2+(p1-p3)2+(p1-pk)2+(p2-p3)2+(pk-1-pk)2 问题求解:求出一种分法,使S为最大(若有多种方案仅记一种 程序说明:数组:a1,a2,.AN存放原数p1,p2,.,pK存放每个部分的积b1,b2,.,bN穷举用临时空间d1,d2,.,dN存放最佳方案 程序:program t6;Var i,j,n,k : integer;sum,cmax:longint;a :array 1.100 of integer;b,d:array 0.100 of integer;p :array1.30 of integer;

14、begin readln(n,k); for i:=1 to n do read(ai); for i:=0 to n do bi:=1; cmax:=0; while (b0=1) do begin for i:=1 to k do _(5)_; for i:=1 to n do _(6)_; sum:=0; for i:=1 to k-1 do for j:=_(7)_ do sum:=sum+(pi-pj)*(pi-pj); if _(8)_ then begin cmax:=sum; for i:=1 to n do di:=bi; end; j:=n; while _(9)_ do

15、j:=j-1; bj:=bj+1; for I:=j+1 to n do _(10)_ ; end; writeln(cmax); for i:=1 to n do write(di:40); writeln;end.1.(1)pathi :=i (2)not (j in s) and (dj mm) (3)(dk+costk,j) dj (4)pathj+k2. (5)pi:=1 (6)pbi:=pbi*ai (7)i+1 to k (8)cmaxr),输出从数1 到n中按降序顺序取r个自然数的所有组合.例如,n=5,r=3时,有如下组合:5 4 3 5 4 2 5 4 1 5 3 2 5

16、3 1 5 2 14 3 24 3 14 2 1 3 2 1程序如下:program tk1;var n,r,i,j:integer;a:array1.20 of integer;begin write(n,r=); repeat readln(n,r); until nr; i:=1;a1:=n;writeln(result:); repeat if ir then if air-i then begin _(1)_;i:=i+1; end else begin _(2)_; aI:=aI-1; end else begin for j:=1 to r do write(aj:3); wri

17、teln; if ar=1 then begin i:=i-1; ai:=ai-1; end else _(3)_ end; until a1=r-1;end.2. 现在政府计划在某个区域内的的城市间架设高速公路,以使任意两个城市间能够直接或间接到达,怎样修路,费用最小。输入文件:第一行一个整数 n(n=100)表示城市数目。第二行至第n+1行每行两个数xi,yi(0=xi,yi0) and (dpj,j) 0) and (dpj,jdk,j)1、背包问题:设有不同价值、不同重量的物品n件,求从这n件物品中选取部分物品的方案,使选中物品的总重量不超过指定的限制重量,但选中物品的价值之和最大。

18、算法说明:设n件物品的重量分别为w1,w2,wn;,物品的价值分别为v1,v2,vn。采用递归寻找物品的选择方案。设前面已有了多种选择的方案,并保留了其中总价值最大的方案于数组result中,该方案的总价值存于变量maxv。当前正在考察某一新的方案,其物品选择情况保存于数组option中。假定当前方案已考虑了前i-1件物品,现在要考虑第i件物品;当前方案已包含的物品的重量之和为tw;至此,若其余物品都选择是可能的话,本方案能达到的总价值的期望值设为tv。算法引入tv是当一旦当前方案的总价值的期望值也小于前面方案的总价值maxv时,继续考察当前方案变成无意义的工作,应终止当前方案,立即去考察下一

19、个方案。因为当方案的总价值不比maxv大时,该方案不会再被考察。这同时保证后面找到的方案一定会比前面的方案更好。 程序清单:program ex4;const maxn=20; var i,n,limitw,maxv,totalv:longint; w,v:array1.maxn of longint; result,option:array1.maxn of boolean; procedure try(i,tw,tv:longint); var k:longint; begin if tw+wi=limitw then begin optioni:=true; if imaxv then if i0) and (x0) and (y=n) and bzx,ythen begin inc(w);hw,1:=x;hw,2:=y;bzx,y:=false;end;end;inc(t);until _(4)_;end;beginfillchar(bz,sizeof(bz),true); num:=0;write(input file:); readln(name); assign(int,name); reset(int);readln(int,m,n);for i:=1 to

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1