noip普和组赛前冲刺资料全

上传人:仙*** 文档编号:100852195 上传时间:2022-06-03 格式:DOC 页数:32 大小:294KB
收藏 版权申诉 举报 下载
noip普和组赛前冲刺资料全_第1页
第1页 / 共32页
noip普和组赛前冲刺资料全_第2页
第2页 / 共32页
noip普和组赛前冲刺资料全_第3页
第3页 / 共32页
资源描述:

《noip普和组赛前冲刺资料全》由会员分享,可在线阅读,更多相关《noip普和组赛前冲刺资料全(32页珍藏版)》请在装配图网上搜索。

1、.数组 一、数字数组ex1_1_1.pas级数求和题目描述已知:Sn=1+1/2+1/3+1/n。显然对于任意一个数K,当n.足够大的时候,Sn大于K。 现给出一个整数K,要求计算出一个最小的n,使得SnK 输入一行,一个整数K输出一行,一个整数n输入样例1输出样例2ex1_1_2.pas陶陶摘苹果题目描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假

2、设她碰到苹果,苹果就会掉下来。输入两行数据。第一行包含10个100到200之间包括100和200的整数以厘米为单位分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间包含100和120的整数以厘米为单位,表示陶陶把手伸直的时候能够达到的最大高度。输出一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。输入样例100 200 150 140 129 134 167 198 200 111110输出样例5ex1_1_3.pas数字统计题目描述请统计某个给定范围L, R的所有整数中,数字2 出现的次数。比如给定范围2, 22,数字2 在数2 中出

3、现了1 次,在数12 中出现1 次,在数20 中出现1 次,在数21 中出现1 次,在数22 中出现2 次,所以数字2 在该范围内一共出现了6次。输入共1 行,为两个正整数L 和R,之间用一个空格隔开。输出共1 行,表示数字2 出现的次数。输入样例2 22输出样例6输入输出样例22 100输出20数据范围1 L R 10000。ex1_1_4.pas狐狸追兔子题目描述围绕着山顶有m个洞m,一只狐狸和一只兔子住在各自的洞里。狐狸总想吃掉兔子。一天,兔子对狐狸说:你想吃我有一个条件,先把洞从1m编上号,你从m号洞出发,先到一号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依次类推,次数不限。

4、若能找到我,你就可以饱餐一顿。不过在没有找我以前不能停下来。狐狸满口答应就开始找了,它从早到晚进了n次洞1=n=1000,累得昏了过去也没有找到兔子。请问,兔子躲在几号洞里?输入一行,洞的个数m,狐狸进洞的次数n输出一行,兔子躲的洞的号数,由小到大输出,各数中间用空格隔开输入样例10 2输出样例2 4 5 6 7 8 9 10ex1_1_5.pas不高兴的津津题目描述津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为

5、其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。输出一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最不高兴的是周几用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周五,周六,周日。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。输入样例5 36 27 25 35 40 40 6输出样例3ex1_1_6.pas多项式

6、输出题目描述一元 n 次多项式可用如下的表达式表示:其中,aixi 称为i次项,ai称为i次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:1. 多项式中自变量为x,从左到右按照次数递减顺序给出多项式。2. 多项式中只包含系数不为0 的项。3. 如果多项式n 次项系数为正,则多项式开头不出现+号,如果多项式n 次项系数为负,则多项式以-号开头。4. 对于不是最高次的项,以+号或者-号连接此项与前一项,分别表示此项系数为正或者系数为负。紧跟一个正整数,表示此项系数的绝对值如果一个高于0 次的项,其系数的绝对值为1,则无需输出1。如果x 的指数大于1,则接下来紧

7、跟的指数部分的形式为xb,其中b 为x 的指数;如果x 的指数为1,则接下来紧跟的指数部分形式为x;如果x 的指数为0,则仅需输出系数即可。5. 多项式中,多项式的开头、结尾不含多余的空格。输入共有2 行第一行 1 个整数,n,表示一元多项式的次数。第二行有 n+1 个整数,其中第i 个整数表示第n-i+1 次项的系数,每两个整数之间用空格隔开。输出共1 行,按题目所述格式输出多项式。输入样例5100 -1 1 -3 0 10输出样例100x5-x4+x3-3x2+10输入输出样例23-50 0 0 1输出-50x3+1数据范围1 n 100,多项式各次项系数的绝对值均不超过100。二、字符数

8、组定义:String等价于array0.255 of char,其中第0号但有存放的是实际长度。Ansistring长度不限。常用操作Length 求st的长度Copy 从st的第m个位置开始复制n个字符Delete 删除st的第m个位置开始的n个字符Val 将字符串st转化为数字x,若能成功转化,则code=0;若不能,code返回第一个非法字符的位置。注:当st只有一个字符时,code返回的数值不准,建议少用code判断位置。 Str 将数字x转化为字符串st将单个字符c转化为数字x: x:=ord-48;将单个数字x转化为字符c: c:=chr;将字符串倒序存放在a数组中:A0:=len

9、gth;For i:=1 to a0 doAi:=ord-48;ex1_2_1.pasISBN号码题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-是分隔符键盘上的减号,最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语音,例如0代表英语;第一个分隔符-之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符之后的五位数字代表该书在该出版社的编号;最后一位为识别码。识别吗的计算方法如下:首位数字乘以1加上次位数字乘以2以此

10、类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN码0-670-82162-4中的识别码4是这样得到的:对0670082162这9个数字,从左至右,分别乘以1,2,9,再求和,即01+62+29=158,然后取158 mod 11的结果4作为识别码/你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出Right;如果错误,则输出你认为是正确的ISBN号码.输入只有一行,是一个字符序列,表示一本书的ISBN号码保证输入符合ISBN号码.的格式要求。输出一行,假如输入的ISBN号码的识别码正确,那么输出Right,否则,

11、按照规定的格式,输出正确的ISBN号码包括分隔符-。输入样例0-670-82162-4输出样例Right输入输出洋例20-670-82162-0输出0-670-82162-4ex1_2_2.pas数字反转NOIP2011题目描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零参见样例2。输入输入共 1 行,一个整数N。输出输出共 1 行,一个整数,表示反转后的新数。输入样例123输出样例321输入输出样例 2输入:-380输出:-83数据范围-1,000,000,000 N 1,000,000,000

12、ex1_2_3.pas乒乓球题目描述国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。 华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果截至记录末尾。 比如现在有这么一份记录,其中W表示华华获得一分,L表示华华对手获得一分: WWWWWWWW

13、WWWWWWWWWWWWWWLW 在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。 你的程序就是要对于一系列比赛信息的输入WL形式,输出正确的结果。输入每个输入包含若干行字符串每行至多20个字母,字符串有大写的W、L和E组成。其中E表示比赛信息结束,程序应该忽略E之后的所有内容。输出输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分按比赛信息输入顺序。其中第一部分是11分制下的结果,第二部分是21分制下的结果

14、,两部分之间由一个空行分隔。输入样例WWWWWWWWWWWWWWWWWWWWWWLWE输出样例11:011:01:121:02:1ex1_2_4.pas统计单词数题目描述一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同参见样例1,如果给定单词仅是文章中某一单词的一部分则不算匹配参见样例2。输入2 行:第

15、1 行为一个字符串,其中只含字母,表示给定单词;第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。输出只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置即在文章中第一次出现时,单词首字母在文章中的位置,位置从0 开始;如果单词在文章中没有出现,则直接输出一个整数-1。输入样例Toto be or not to be is a question输出样例2 0输入输出样例 1 说明输出结果表示给定的单词 To 在文章中出现两次,第一次出现的位置为0。提示输入输出样例 2输入:toDid the Ottoman

16、 Empire lose its power at that time输出:-1输入输出样例 2 说明表示给定的单词 to 在文章中没有出现,输出整数-1。数据范围1 单词长度 10。1 文章长度 1,000,000。ex1_2_5.pas计算器的改良题目描述NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例: 4+3x=8 6a-5+1=2-2a -5+12Y=0 ZL先生被主管告之,在计算

17、器上键入的一个一元一次方程中,只包含整数、小写字母 及十、一、这三个数学符号当然,符号一既可作减号,也可作负号。方程中并没有括号,也没有除号,方程中的字母表示未知数。 输入输入一个一元一次方程,可认为输入的一元一次方程均为合法的,且有唯一实数解。输出将解方程的结果精确至小数点后三位输出。输入样例6a-5+1=2-2a输出样例a=0.750ex1_2_6.pas字符串编辑题目描述从键盘输入一个字符串长度=255个字符,例如:This is a book. 现对该字符串进行编辑,编辑功能有:D:删除一个字符,命令的方式为: D a 其中a为被删除的字符D和a之间用空格隔开,以下均是例如:D s 表

18、示删除字符 s ,若字符串中有多个 s,则删除第一次出现的。如上例中删除的结果为: Thi is a book.I:插入一个字符,命令的格式为:I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符。例如:I s d 表示在指定字符 s 的前面插入字符 d ,若原串中有多个 s ,则插入在最后一个字符的前面,如上例中:原串:This is a book.插入后:This ids a book.R:替换一个字符,命令格式为: R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部替换。例如:原串: This is a book.输入命令:R o e

19、替换后的字符串为: This is a beek.在编辑过程中,若出现被改的字符不存在时,则给出提示信息no exsit!。输入输入包含两行,第一行为待编辑的字符串;第二行为对该字符串进行操作的命令字符串,其中命令均为大写字符,命令对象大小写均有可能,命令和命令对象间用一个空格隔开。输出输出只有一行,即编辑后的字符串输入样例This is a bookI s d输出样例This ids a book高精度算法说明:typearr=array0.maxlen of integer;Readln;For i:=1 to length do Ai:=ordxlength-i+1-48;A0:=len

20、gth;数x倒序存放在a数组中:1高精度加法procedure jia;var i,len:integer;beginfillcharc,sizeof,0;if a0b0 then len:=a0 else len:=b0;for i:=1 to len do begin ci:=ai+bi;ci+1:=ci div 10; /进位ci:=ci mod 10;end;if clen+10 then inc;c0:=len;end;2高精度减法 在存放到a、b数组时,保证数ab,结果存放在C数组中。procedure jian;var i,len:integer;beginfillcharc,s

21、izeof,0;len:=a0;for i:=1 to len do begin if ai0 then inc;c0:=len;end;plus3高精度乘以单个数x0x100 要求:结果仍然存放在a数组中。Procedure cheng1;Var I,j,len:longint;Begin Len:=a0; For i:=1 to len do Ai:=ai*x; /a内所有元素乘以x For i:=1 to len do If ai10 then begin Ai+1:=ai+1+ai div 10; /进位处理 Ai:=ai mod 10;End; While alen+10 do be

22、gin Len:=len+1; If alen10 then begin Alen+1:=alen div 10; Alen:=alen mod 10; End; End;End;4高精度乘以高精度要求:结果存放在c数组中。procedure cheng2a,b:arr; var c:arrvar i,j,len:longint;beginfillcharc,sizeof,0;for i:=1 to a0 dofor j:=1 to b0 do begin ci+j-1:=ci+j-1+ai*bj; ci+j:=ci+j+ci+j-1 div 10;ci+j-1:=ci+j-1 mod 10;

23、end;len:=a0+b0;while 1 and do len:=len-1;c0:=len;end;ex2_1.pas麦森数NOIP2003题目描述形如2P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2P-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。任务:输入P1000P3100000,计算2P-1的位数和最后500位数字输入只包含一个整数P1000P3100000输出第一行:十进制高精度数2P-1的位数。第2-11行:十进制高精度数2P-1的最

24、后500位数字。每行输出50位,共输出10行,不足500位时高位补0不必验证2P-1与P是否为素数。输入样例1279输出样例ex2_2.pasHanoi双塔问题题目描述给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有空的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的下图为n=3的情形。现要将这些圆盘移到C柱上,在移动过程中可放在B柱上暂存。要求: 每次只能移动一个圆盘; A、B、C三根细柱上的圆盘都要保持上小下大的顺序; 任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An。 输入一个正整数n,表示在A柱上放有2n个圆盘。输出

25、仅一行,包含一个正整数,为完成上述任务所需的最少移动次数An。输入样例1输出样例2输入输出样例2 2 输出6 限制对于50%的数据, 1=n=25 对于100% 数据, 1=n=200 提示 设法建立An与An-1的递推关系式。数论算法1求两数x,y的最大公约数. 2求两数x、y的最小公倍数function lcm:longint;var temp:longint;beginif xy then begin temp:=x;x:=y;y:=temp;end;lcm:=x;while lcm mod y0 do inc;end;function gcd:longint;beginif b=0 t

26、hen gcd:=xelse gcd:=gcd;end ;3、素数的求法A.判断一个数n是否为质数:function prime : Boolean;var I: integer;beginprime:=true;for I:=2 to truncsqrt doif n mod I=0 then beginprime:=false; break;end;end;B.筛选法判断longint范围内的数有哪些素数输入范围n,求出1n中的所有素数。procedure sushu;var i,j:longint; f:array1.n of boolean;begin fillcharf,sizeof

27、,true; f1:=false; for i:=2 to truncsqrt do if fi then for j:=2 to n div i do fi*j:=false;end;ex3_1.pas最大公约数与最小公倍数题目描述二个正整数x0,y0,求满足下列条件的P,Q的个数。 条件: 1.P,Q是正整数; 2.要求P,Q以x0为最大公约数,以y0为最小公倍数。 试求:满足条件的所有可能的两个正整数的个数。输入输入x0和y0输出满足条件的所有可能的两个正整数的个数输入样例3 60输出样例4提示样例说明:此时的P Q分别为: 3 60 15 12 12 15 60 3排序算法对a数组进行

28、从小到大的排序1.快速排序:procedure qsort;var i,j,mid:integer;begini:=l;j:=r; mid:=a div 2; 将当前序列在中间位置的数定义为中间数repeatwhile aimid do inc; 在左半部分寻找比中间数大的数while ajmid do dec;在右半部分寻找比中间数小的数if i=j then begin 若找到一组与排序目标不一致的数对则交换它们swap;inc;dec; 继续找end;until ij;if lj then qsort; 若未到两个数的边界,则递归搜索左右区间if ir then qsort;end;so

29、rt2.选择排序:procedure sort;var i,j,temp:integer;beginfor i:=1 to n-1 dofor j:=i+1 to n doif aiaj then begin temp:=ai; ai:=aj;aj:=temp;end;end;3. 冒泡排序procedure bubble_sort;var i,j,temp:integer;beginfor i:=1 to n-1 dofor j:=1 to n-i doif ajaj+1 then begin temp:=aj; aj:=aj+1;aj+1:=temp;end; 每次比较相邻元素的关系end

30、;4.桶排序 当数据的范围在一有限范围内时。例:输入n个范围在0.1000之间的整数,从小到大排序输出。Var I,n,x:integer; a:array0.1000 of integer;begin readln; fillchara,sizeof,0; for i:=1 to n do begin read; ax:=ax+1; end; for i:=1 to 1000 doif ax0 then write;end.5. 归并排序例:a,b均为已按从小到大排好序的两个数组,将其合并为有序的一个数组。procedure guibin;var i,j,k:longint;begin fi

31、llcharc,sizeof,0; i:=1;j:=1;k:=0; repeat k:=k+1; if aibj then begin ck:=ai;i:=i+1; end else begin ck:=bj; j:=j+1; end; until laorlb; if i=la then for j:=i to la do begin k:=k+1; ck:=ai; end; if j=lb then for i:=j to lb do begin k:=k+1; ck:=bj; end;end;ex4_1.pas校门外的树题目描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔

32、都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树包括区域端点处的两棵树移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。 输入第一行有两个整数L1 = L = 10000和 M1 = M = 100,L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点

33、和终止点的坐标。输出一行,这一行只包含一个整数,表示马路上剩余的树的数目。输入样例500 3150 300100 200470 471输出样例298数据规模 对于20%的数据,区域之间没有重合的部分; 对于其它的数据,区域之间有重合的情况。ex4_2.pas明明的随机数NOIP2006题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数N100,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成去重与排序的工作。输入有2行

34、,第1行为1个正整数,表示所生成的随机数的个数:N 第2行有N个用空格隔开的正整数,为所产生的随机数。输出2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。输入样例1020 40 32 67 40 20 89 300 400 15输出样例815 20 32 40 67 89 300 400ex4_3.pas奖学金题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个

35、同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。 任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据 是: 7 279 5 279 这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是279,但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是: 5 279 7 279 则按输出错误处理,不能得分。输入第1行为一个正整数n,表示该校参加评选

36、的学生人数。 第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为ln 。 所给的数据都是正确的,不必检验。 输出共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。.输入样例1690 67 8087 66 9178 89 9188 99 7767 89 6478 89 98输出样例16 2654 2643 2582 2441 237输入样例28 80 89 89 88 98 78 90 67 80 87 66 91 78 89 91 88 99 7767

37、 89 64 78 89 98 输出样例28 2652 264 6 264 1 258 5 258 .限制 50%的数据满足:各学生的总成绩各不相同;100%的数据满足: 6=n=300ex4_4.pas分数线划定题目描述世博会志愿者的选拔工作正在A市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%向下取整名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的

38、选手的报名号和笔试成绩。输入第一行,两个整数n,m5 n 5000,3 m n,中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的志愿者人数。输入数据保证m*150%向下取整后小于等于n。第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k1000 k 9999和该选手的笔试成绩s1 s 100。数据保证选手的报名号各不相同。输出第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低

39、输出,如果成绩相同,则按报名号由小到大的顺序输出。输入样例6 31000 903239 882390 957231 841005 951001 88输出样例88 51005 952390 951000 901001 883239 88提示样例说明m*150% = 3*150% = 4.5,向下取整后为4。保证4 个人进入面试的分数线为88,但因为88有重分,所以所有成绩大于等于88 的选手都可以进入面试,故最终有5 个人进入面试。ex4_5.pas接水问题题目描述学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。现在有n 名同学准备接水,他们的初始

40、接水顺序已经确定。将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。若当前接水人数n不足m,则只有n个龙头供水,其它mn个龙头关闭。现在给出n 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。输入第1 行2 个整数n 和m,用一个空格隔开,分别表示接水人数和龙头个数。第2 行n 个整数

41、w1、w2、wn,每两个整数之间用一个空格隔开,wi 表示i 号同学的接水量。输出只有一行,1 个整数,表示接水所需的总时间。输入样例5 34 4 1 2 1输出样例4输入输出样例说明第1 秒,3 人接水。第1 秒结束时,1、2、3 号同学每人的已接水量为1,3 号同学接完水,4 号同学接替3 号同学开始接水。第2 秒,3 人接水。第2 秒结束时,1、2 号同学每人的已接水量为2,4 号同学的已接水量为1。第3 秒,3 人接水。第3 秒结束时,1、2 号同学每人的已接水量为3,4 号同学的已接水量为2。4 号同学接完水,5 号同学接替4 号同学开始接水。第4 秒,3 人接水。第4 秒结束时,1

42、、2 号同学每人的已接水量为4,5 号同学的已接水量为1。1、2、5 号同学接完水,即所有人完成接水。总接水时间为4 秒。输入输出样例28 423 71 87 32 70 93 80 76输出163数据范围1 n 10000,1 m 100 且m n;1 wi 100。ex4_6.pas瑞士轮题目描述在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长。本题中介绍的瑞士轮赛制,因最早使用于 1895 年在瑞士举办的国际象棋比赛而得名。它可以看作是淘汰赛与

43、循环赛的折衷,既保证了比赛的稳定性,又能使赛程不至于过长。2*N 名编号为12N 的选手共进行R 轮比赛。每轮比赛开始前,以及所有比赛结束后,都会按照总分从高到低对选手进行一次排名。选手的总分为第一轮开始前的初始分数加上已参加过的所有比赛的得分和。总分相同的,约定编号较小的选手排名靠前。每轮比赛的对阵安排与该轮比赛开始前的排名有关:第 1 名和第2 名、第3 名和第4名、第2K 1 名和第2K 名、 、第 2N 1 名和第2N 名,各进行一场比赛。每场比赛胜者得1 分,负者得0 分。也就是说除了首轮以外,其它轮比赛的安排均不能事先确定,而是要取决于选手在之前比赛中的表现。现给定每个选手的初始分

44、数及其实力值,试计算在 R 轮比赛过后,排名第Q 的选手编号是多少。我们假设选手的实力值两两不同,且每场比赛中实力值较高的总能获胜。输入第一行是三个正整数 N、R、Q,每两个数之间用一个空格隔开,表示有2*N 名选手、R 轮比赛,以及我们关心的名次Q。第二行是 2*N 个非负整数s1, s2, , s2N,每两个数之间用一个空格隔开,其中si 表示编号为i 的选手的初始分数。第三行是 2*N 个正整数w1, w2, , w2N,每两个数之间用一个空格隔开,其中wi 表示编号为i 的选手的实力值。输出只有一行,包含一个整数,即 R 轮比赛结束后,排名第Q 的选手的编号。输入样例2 4 27 6

45、6 710 5 20 15输出样例1提示输入输出样例说明数据范围对于 30%的数据,1 N 100;对于 50%的数据,1 N 10,000;对于 100%的数据,1 N 100,000,1 R 50,1 Q 2N,0 s1, s2, , s2N 108,1 w1,w2, , w2N 108。查找算法说明:a数组有一从小到大有序的数组,查找x在a数组中应插入的位置。1、折半查找function binsearch:longint;var i,j,mid:integer;begin i:=l; j:=n; repeat mid:= div 2;if x=amid then begin binse

46、arch:=mid;exit;end;if xamid then i:=mid+1else j:=mid-1; until ij; binsearch:=i;end;进制转换TypeArr:array1.maxlen of integer;说明:除十进制外的其余进制存放在a数组中。1、十进制数x转二进制Procedure shi_zhuan_er;Var i:longint;Begin Fillchara,sizeof,0; I:=0; While x0 do beginI:=i+1;Ai:=x mod 2;X:=x div 2; End; a0:=i; /转化后的数倒着存放在a数组中。End

47、;除2取余法2、任意正整数x转化成n进制Procedure shi_zhuan_n;Var i:longint;Begin Fillchara,sizeof,0; I:=0; While x0 do beginI:=i+1;Ai:=x mod n;X:=x div n; End; a0:=i; /转化后的数倒着存放在a数组中。End;除n取余3、n进制转换为十进制正整数xx在longint范围内procedure n_zhuan_shi;var i,y:longint;begin y:=1; x:=a1; for i:=2 to a0 do begin y:=y*n; x:=x+y*ai; e

48、nd;end; ex5_1.pas数制转化题目描述 设有一个字符串A$的结构为: A$=mp;其中m为数字串长度=20,而n,p均为1或2位的数字串其中所表达的内容在2-10之间。从键盘上读入A$后不用正确性检查,将A$中的数字串m,以p进制的形式输出。例如:A$=488;其意义为:将10进制数48,转换成8进制数输出。输入说明一行,即一个满足A$条件的字符串输出说明一行,转化后的数字输入样例488输出样例60数据范围m以及转化过程和转化后的数据都在0,2000000000内。 0n16 0p9ex5_2.pas数列NOIP2006题目描述给定一个正整数k,把所有k的方幂及所有有限个互不相等的

49、k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:1,3,4,9,10,12,13,该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,请你求出这个序列的第N项的值用10进制数表示。例如,对于k=3,N=100,正确答案应该是981。输入只有1行,为2个正整数,用一个空格隔开:k Nk、N的含义与上述的问题描述一致,且3k15,10N1000。输出一个正整数在所有的测试数据中,结果均不超过2.1*109。整数前不要有空格和其他符号。输入样例3 100输出样例981贪心法概念:根据每次所得到的局部最优解,推导出全局最优解或最优目标。ex6_1.p

50、as07NOIP普及组纪念品分组题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。 你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。 输入含n+2行: 第1行包括一个整数w,为每组纪念品价格之和的上限; 第2行为一个整数n,表示购来的纪念品的总件数; 第3-n+2行每行包含一个正整数Pi5=Pi,表示所对应纪念品的价格。 输出

51、仅一行,包含一个整数,即最少的分组数目。输入样例1009902020305060708090输出样例6限制 50%的数据满足: 1=n=15 100%的数据满足: 1=n=30000,80=W=200ex6_2.pas10NOIP普及组导弹拦截题目描述经过11 年的韬光养晦,某国研发出了一种新的导弹拦截系统,凡是与它的距离不超过其工作半径的导弹都能够被它成功拦截。当工作半径为0 时,则能够拦截与它位置恰好相同的导弹。但该导弹拦截系统也存在这样的缺陷:每套系统每天只能设定一次工作半径。而当天的使用代价,就是所有系统工作半径的平方和。某天,雷达捕捉到敌国的导弹来袭。由于该系统尚处于试验阶段,所以只

52、有两套系统投入工作。如果现在的要求是拦截所有的导弹,请计算这一天的最小使用代价。输入第一行包含4 个整数x1、y1、x2、y2,每两个整数之间用一个空格隔开,表示这两套导弹拦截系统的坐标分别为、。第二行包含1 个整数N,表示有N 颗导弹。接下来N 行,每行两个整数x、y,中间用一个空格隔开,表示一颗导弹的坐标。不同导弹的坐标可能相同。提示两个点、之间距离的平方是2+2。两套系统工作半径r1、r2 的平方和,是指r1、r2 分别取平方后再求和,即r12+r22。输出只有一行,包含一个整数,即当天的最小使用代价。输入样例0 0 10 02-3 310 0输出样例18提示样例 1 说明样例1 中要拦

53、截所有导弹,在满足最小使用代价的前提下,两套系统工作半径的平方分别为18 和0。输入输出样例20 0 6 05-4 -2-2 34 06 -29 1输出30样例2 说明样例中的导弹拦截系统和导弹所在的位置如下图所示。要拦截所有导弹,在满足最小使用代价的前提下,两套系统工作半径的平方分别为20 和10。数据范围对于10%的数据,N = 1对于20%的数据,1 N 2对于40%的数据,1 N 100对于70%的数据,1 N 1000对于100%的数据,1 N 100000,且所有坐标分量的绝对值都不超过1000。递推:重点:找寻数据间的关系。ex7_1.pas斐波那契数列题目描述菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数是多少。输入第1行是测试数据的组数n1n10,后面跟着n行输入。每组测试数据占1行,包括一个正整数a1a75输出输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数。样例输入452191样例输出5141811ex7_2.pas产生数题目描述给出一个整数nn和k个变换规则k。 规则: 1位数可变换成另一个一位数; 规则的右部不能为零。 例如: n=234, 有规则: 25 36 上面的整数234经过变换后可能产生出的

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!