发布时间 : 星期日 文章NOIP2008年提高组初赛试题(十四届)(非常详细)更新完毕开始阅读fd928382ec3a87c24028c4a2
NOIP2008初赛(提高组)试题&解析
exit(i); end;
var i:integer; begin
randomize; ans:=-1; m:=5;
for i:=1 to m do read(a[i]); read(n);
ans:=FindKth(1,m,n); writeln(a[ans]); end.
【答案】 ① a[left]
② a[j] < value (或a[j] <= value) ③ a[i] > value (或a[i] >= value) ④ a[i] := value; ⑤ i,right,n ⑥ FindKth(left, i, n)
2.(矩阵中的数字)有一个n*n(1≤n≤5000)的矩阵a,对于1≤i var n,k,answerx,answery:integer; a:array[1..5000,1..5000] of integer; Procedure FindKPosition; Var I,j:integer; Begin i:=n; j:=n; while j>0 do begin if a[n,j] ______①_________ while a[i,j]<>k do begin while (___②_____) and (i>1) do dec(i); while (___③_____) and (j<=n) do inc(j); end; _______④________ - 9 - NOIP2008初赛(提高组)试题&解析 _______⑤________ end; var i,j:integer; begin read(n); for i:=1 to n do for j:=1 to n do read(a[i,j]); read(k); FindKPosition; writeln(answerx,' ',answery); end. 【答案】 ① inc(j); (或者j := j+1;) ② a[i,j] > k ③ a[i,j] < k ④ answerx := i; ⑤ answery := j; - 10 -