好文档 - 专业文书写作范文服务资料分享网站

NOIP2013初赛提高组Pascal试题及答案 

天下 分享 时间: 加入收藏 我要投稿 点赞

j := 1; //i, j 分别表示当前子序列的首尾,并保证其中至多有两个不同整数

while (j <= n) and (a[j] = a[i]) do

inc(j); cur1 := a[i];

cur2 := a[j]; count1 := (1) ; count2 := 1; ans_length := j - i + 1;

while j < n do begin

inc(j);

if a[j] = cur1 then

inc(count1)

else if a[j] = cur2 then

inc(count2) else begin

if a[j - 1] = (2) then

begin

while count2 > 0 do begin

if a[i] = cur1 then

dec(count1) else

dec(count2); inc(i);

end;

cur2 := a[j];

count2 := 1;

end

else begin

while count1 > 0 do begin

if a[i] = cur1 then

(3) else

(4) ; CCF NOIP2013 初赛提高组 Pascal 语言试题第 11 页,共 12 页

//(3 分)

//(3 分)

//(2 分) //(2 分)

inc(i);

end;

(5)

; //(3 分)

count1 := 1; end; end;

if (ans_length < j - i + 1) then begin

ans_length := j - i + 1;

ans_start := i;

ans_end := j;

end;

end;

for i := ans_start to ans_end do

write(a[i], ' ');

end.

CCF NOIP2013 初赛提高组 Pascal 语言试题

第 12 页,共 12 页

NOIP2013 初赛提高组(Pascal语言)试题参考解答

一、单项选择

1 A 2 A 3 B 4 D 5 A 6 B 7 D 8 B 9 D 10 11 12 13 14 15 D C B D B B 二、多项选择

1 AC 三、解答题

1. 0 1 1 1 2. 37/12 求解方法为:

2 AD 3 CD 4 AB 5 ABCD 先将问题转为青蛙随机跳了一步以后的情况,分为5种情况,分别是落在1号、2号、3号、4号、5号荷叶上,于是有 f5=(f1 + 1+f2+ 1+f3+ 1+f4 +1+f5) / 5 ,从而推得 f5=1+(f1+f2+f3+f4)/4。

推而广之,求fn的递推式为: f[1]=1

f[n]=1+(f[1]+f[2]+…+f[n-1])/(n-1) (n>1) 四、阅读程序题

(1)Yes 判定输入的字符串是否是回文串

(2)133 1到1000中是10或15的倍数的数的个数 (3)4 最长上升子序列的长度 (4)7 图中最长通路的长度 五、完成程序题

1.(1) n+i-p (2) i+1-p (3) a[i-p] (4) j<=end2 (5) i (6) J-1(或start2-1) 2、(1)j-1 (2) cur1 (3) dec(count1) (4) dec(count2) (5) cur1:=a[j]

CCF NOIP2013 初赛提高组 Pascal 语言试题

第 13 页,共 12 页

NOIP2013初赛提高组Pascal试题及答案 

j:=1;//i,j分别表示当前子序列的首尾,并保证其中至多有两个不同整数while(j<=n)and(a[j]=a[i])doinc(j);cur1:=a[i];cur2:=a[j];count1:=(1);count2:=1;ans_length:=j-i+1;
推荐度:
点击下载文档文档为doc格式
1cj7p4krcj9gaia4885k
领取福利

微信扫码领取福利

微信扫码分享