noip复赛模拟练习4答案.docx

上传人:b****5 文档编号:2854189 上传时间:2022-11-16 格式:DOCX 页数:17 大小:35.20KB
下载 相关 举报
noip复赛模拟练习4答案.docx_第1页
第1页 / 共17页
noip复赛模拟练习4答案.docx_第2页
第2页 / 共17页
noip复赛模拟练习4答案.docx_第3页
第3页 / 共17页
noip复赛模拟练习4答案.docx_第4页
第4页 / 共17页
noip复赛模拟练习4答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

noip复赛模拟练习4答案.docx

《noip复赛模拟练习4答案.docx》由会员分享,可在线阅读,更多相关《noip复赛模拟练习4答案.docx(17页珍藏版)》请在冰豆网上搜索。

noip复赛模拟练习4答案.docx

noip复赛模拟练习4答案

编程输入若干个字符串(以“?

”号结束),找出并输出未在此串中出现的所有字母和数字(按ascii码顺序列出,区分大小写)。

输入:

一行,一串字符,小于1000000个。

输出:

一行,未在字符串中出现的所有的字母和数字,按ascii码顺序、

varp,q:

setofchar;

   ch,i:

char;

begin

 assign(input,'agger.in');

 reset(input);

 assign(output,'agger.out');

 rewrite(output);

 p:

=['0'..'9','A'..'Z','a'..'z'];

 q:

=[];

 read(ch);

 whilech<>'?

'do

   begin

     q:

=q+[ch];

     read(ch);

   end;

 fori:

='0'to'9'do

   ifnot(iinq) and (iinp)thenwrite(i);

 fori:

='A'to'Z'do

   ifnot(iinq) and (iinp)thenwrite(i);

 fori:

='a'to'z'do

   ifnot(iinq) and (iinp)thenwrite(i);

 close(input);

 close(output);

end.

或varp:

setofchar;

   ch,i:

char;

begin

 assign(input,'agger.in');

 reset(input);

 assign(output,'agger.out');

 rewrite(output);

 p:

=['0'..'9','A'..'Z','a'..'z'];

 read(ch);

 whilech<>'?

'do

   begin

    ifchinpthenp:

=p-[ch];

Read(ch);

   end;

 fori:

='0'to'z'do

   ifiinp thenwrite(i);

 close(input);

 close(output);

end.

输入XYZabcd123ytFSRUuutaxer?

输出0456789ABCDEGHIJKLMNOPQTVWfghijklmnopqsvwz

输入TUIS098734AYUPLMNKasxz?

输出1256BCDEFGHJOQRVWXZbcdefghijklmnopqrtuvwy

输入1234567890!

tyklfgTYKPLKMNNBCVXDERWQAHJIKLRSTUVWXYZ?

输出FGOabcdehijmnopqrsuvwxz

输入ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqestuvwxyz123456789?

输出0r

小明爷爷家有棵苹果树,树上高低不一的长了N个苹果。

一天,M个小朋友到爷爷家做客,爷爷说:

你们每人最多可以摘两个苹果,而且只许伸手摘,不允许借助其它工具,摘下的苹果大家分享。

由于小朋友的身高参差不齐,怎样才能使他们摘的苹果总数最多呢?

请你计算机小朋友们最多能摘到多少个苹果?

输入:

NM(N<=100,M<=20)

N个整数(以空格相隔),分别表示每个苹果的高度

M个整数(以空格相隔),分别表示每个小朋友伸手能达到的高度。

输出:

一个整数例如:

输入:

104

1101001509010013516088130140

12010011080

输出:

5

varn,m,t,i,j,ss,sg,sum:

integer;s:

array[1..100]ofinteger;

r:

array[1..20]ofinteger;

beginreadln(n,m);

fori:

=1tondoread(s[i]);

forj:

=1tomdoread(r[j]);

fori:

=1ton-1do

forj:

=i+1tondo

ifs[i]

begint:

=s[i];s[i]:

=s[j];s[j]:

=t;

end;

fori:

=1tom-1do

forj:

=i+1tomdo

ifr[i]

begin

t:

=r[i];

r[i]:

=r[j];

r[j]:

=t;

end;

writeln;

ss:

=0;sum:

=0;sg:

=1;

fori:

=1tomdo

begin

forj:

=sgtondo

begin

ifr[i]>=s[j]then

begin

sg:

=j+1;ss:

=ss+1;sum:

=sum+1;ifss=2thenbeginss:

=0;break;end;

end;

end;

end;

writeln(sum:

5);

end.

输入:

95

1101051409510012515088140

12010011080135

输出:

6

输入:

114

13011512010515012515298130128145

12412211097

输出:

4

输入208

15614913211512110515012515298130128145100150139161145129120

12512211098135145140152

输出15

输入166

144134145129138130149151136125137140155132120124

130125140135146120

输出11

新兵入队的日子是YY年MM月DD日,他们觉得这个日子特别有意义,所以决定过n天搞一次活动来纪念这个日子,可是他们不知道n天后是什么日子,所以请你帮忙计算一下日期(入队日算第0天)。

输入数据

文件第一行读入n(0<=n<=50000)

从文件的第二行分别读入YY,MM,DD其中1949<=YY<=1992,日期绝对合法。

输出数据

输出文件只有一行,即CCC老师生日第一万天以后的日期,格式为“Y-M-D”。

样例输入

10000

1979416

样例输出

2006-9-1

constmon:

array[1..12]ofinteger=(31,28,31,30,31,30,

31,31,30,31,30,31);

varn:

longint;

yy,mm,dd:

longint;

p:

longint;

functioncheck(y:

longint):

boolean;

begin

if((ymod4=0)and(ymod100<>0))or(ymod400=0)thenexit(true);

exit(false);

end;

begin

assign(input,'Date.in');reset(input);

assign(output,'Date.out');rewrite(output);

readln(n);

readln(yy,mm,dd);

whilen>0do

begin

p:

=mon[mm];

if(mm=2)and(check(yy))theninc(p);

inc(dd);dec(n);

ifdd>pthenbegindd:

=1;inc(mm);end;

ifmm>12thenbegininc(yy);mm:

=1;end;

end;

writeln(yy,'-',mm,'-',dd);

close(input);close(output);

end.

输入5000

1978320输出1991-11-27

输入8000

1980229输出2002-1-24

输入50000

19521010输出2089-9-1

笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。

但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!

这种方法的具体描述如下:

假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个LuckyWord,这样的单词很可能就是正确的答案。

【输入】

输入文件word.in只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。

【输出】

输出文件word.out共两行,第一行是一个字符串,假设输入的的单词是LuckyWord,那么输出“LuckyWord”,否则输出“NoAnswer”;

第二行是一个整数,如果输入单词是LuckyWord,输出maxn-minn的值,否则输出0。

【输入输出样例1】

word.in

word.out

Error

LuckyWord

2

【输入输出样例1解释】

单词error中出现最多的字母r出现了3次,出现次数最少的字母出现了1次,3-1=2,2是质数。

【输入输出样例2】

word.in

word.out

Olympic

NoAnswer

0

【输入输出样例2解释】

单词olympic中出现最多的字母i出现了2次,出现次数最少的字母出现了1次,2-1=1,1不是质数。

var

st:

string;

max,min,i:

longint;

a:

array['a'..'z']oflongint;

ch:

char;

functionfun(n:

longint):

boolean;

vari:

longint;

begin

ifn<2thenbeginfun:

=false;exit;end;

fori:

=2ton-1do

ifnmodi=0thenbeginfun:

=false;exit;end;

fun:

=true;

end;

begin

assign(input,'word.in');

reset(input);

assign(output,'word.out');

rewrite(output);

readln(st);

fillchar(a,sizeof(a),0);

fori:

=1tolength(st)do

inc(a[st[i]]);

max:

=0;

min:

=101;

forch:

='a'to'z'do

ifa[ch]>0then

begin

ifa[ch]>maxthenmax:

=a[ch];

ifa[ch]

end;

iffun(max-min)then

begin

writeln('LuckyWord');

writeln(max-min);

end

else

begin

writeln('NoAnswer');

writ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

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

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