2014noip复赛模拟练习29(答案)

更新时间:2023-11-10 18:41:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

辉辉、姗姗和佳佳是好朋友,他们一起参加了在湖南长沙长郡中学举办的第二十一届全国青少年信息学奥林匹克竞赛(NOI2004)。他们很早就来到了长沙,可是报名还没有开始。怎么办呢?他们决定分头出去玩一天,晚上回到宿舍以后给大家说说自己这一天做了什么有意义的事情。

你一定想不到辉辉干嘛去了——他睡了一天。他想:“比赛前几天老是写程序到深夜,头晕晕的……没关系,好好睡一觉,然后我会精神抖擞。醒了之后,我要做有意义的事情。”这一睡可不得了,辉辉从早上a点b分c秒一直睡到了下午d点e分f秒。他睡了多少秒钟呢?

六个非负整数a, b, c, d, e, f(1<=a, d<=11, 0<=b, c, e, f<=59)。例如,a=6, b=5, c=4, d=3, e=2, f=1表示辉辉从06:05:04睡到15:02:01。 【样例输入】 6 5 4 3 2 1 【样例输出】 32217

var a,b,c,d,e,f:longint; begin

readln(a,b,c,d,e,f); d:=d+12;

writeln((d*3600+e*60+f)-(a*3600+b*60+c)); readln

end.

将a,b,c,……n个字符,按顺时针方向排成一圈,然后从任意位置开始按顺时针方向连续取k个字符组成一个k位字符串。(k

此时,可组成:ab,bc,ca。当给出n,k后,输出n个k位字符串 输入:n k 输出:n个k位字符串 输入输出样例:输入:5 4 输出:abcd bcde cdea deab eabc var n,k,i,j,a,b: longint; begin readln(n,k); for i:=1 to n do begin a:=i;b:=0; for j:=1 to k do begin

write(chr(96+a));

if a+1<>n then a:=(a+1) mod n else a:=n; end; writeln; end; readln; end.

问题描述:

计算机软件版本通常被用来区分某种软件在不同时间的发布。大部分软件版本号都是用“.”分隔的非负数的序列。对两个不同的版本A = a1.a2.a3…an和B = b1.b2.b3…bm,如果下面两个条件之一成立,我们认为版本A要比版本B新:

1. 对某个i,我们有:对所有j < i, ai > bi 和aj = bj; 2. n比m大,而且对所有i < m, ai = bi。 (ai和bi都不超过LONGINT)

在这个问题里,你要对给定的一组版本号,按照上面的定义从旧到新排序。

输入文件(VERSIONS.IN):

输入文件第一行是一个整数N(N<=20),表示要排序的版本数。接下来的N行每行一个版本号。每个版本号是长度不超过50的字符串。

输出文件(VERSIONS.OUT):

将排好序的结果以每行一个版本号输出。

输入输出样例:

VERSIONS.IN 4 3.0.5 1 2.4 2.4.6

VERSIONS.OUT

1 2.4 2.4.6 3.0.5

var n,i:integer;

scan:array [1..30] of string;

function check(aa,bb:string):boolean; var

a,b:longint; i,j:integer; code:integer; begin

aa:=aa+'.'; bb:=bb+'.';

i:=pos('.',aa); j:=pos('.',bb); while (i>0) and (j>0) do begin val(copy(aa,1,i-1),a,code); val(copy(bb,1,j-1),b,code); if ab then exit(false); delete(aa,1,i); delete(bb,1,j); i:=pos('.',aa); j:=pos('.',bb); end;

if (i=0) and (j>0) then exit(true) else exit(false); end;

procedure qsort(l,r:integer); var

i,j:integer; t:string; begin

if l>=r then exit; i:=random(r-l)+l;

t:=scan[i];scan[i]:=scan[l]; i:=l;j:=r; repeat

while (i

while (i

scan[i]:=t; qsort(l,i-1); qsort(i+1,r); end;

begin

readln(n);

for i:=1 to n do readln(scan[i]); qsort(1,n);

for i:=1 to n do writeln(scan[i]); end.

上学路线(route.pas/c/cpp) 【题目描述】

你所在城市的街道好像一个棋盘,有a条南北方向的街道和b条东西方向的街道。南北方向的a条街道从西到东依次编号为l到a,而东西方向的b条街道从南到北依次编号为l到b,南北方向的街道i和东西方向的街道j的交点记为(i,j)。

你住在(1,1)处,而学校在(a,b)处,你骑自行车去上学,自行车只能沿着街道走,而且为了缩短时间只允许沿着向东和北的方向行驶。

现在有N个交叉路口在施工(X1,Yl)、(X2,Y2)??,(Xn,Yn),这些路口是不能通车的。

问你上学一共有多少走法?

【输入格式】

第一行包含两个整数a和b,并且满足1≤a,b≤16。

第二行包含一个整数N,表示有N个路口在维修(1≤N≤40)。 接下来N行,每行两个整数X_i,Y_i,描述路口的位置。 【输出格式】

输出一个整数表示从(1,1)到(a,b)的行车路线总数。

【样例输入输出】 Route.in Route.out 5 4 3 2 2 2 3 4 2 5

本文来源:https://www.bwwdw.com/article/pl0v.html

Top