




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NOIP2008模拟试题1(4P24)普及组1.报数(read.pas/c/cpp) OIP2010模拟试题4(4P36)题目描述CG同学又弄到一批新牛,新牛到了农场以后,首先要学习汉语,数的朗读成为新牛的一个难题,朗读绝对值小于10亿的数。新牛们知道汉语中有如下的读数规则:1.首先读符号位,然后读整数部分,整数部分之后可能出现小数点,如果有小数部分则小数点一定出现,并且读出小数点之后读小数部分。2.符号位的读法是:正数,不论正号”+”是否出现,都不必读出符号位;负数的最左边的符号是”-“,读成”负”(以“F”来表示“负”)。3.整数部分的读法是:1 如果整数部分不存在或者整数部分全是零则直接读成“零”(以“0”来表示“零”);2 否则从整数部分中最左边的非零数字开始读起,然后以十、百、千、万、亿(分别以”S”、”B”、”Q”、”W”、“Y”来表示)等数量单位来拼读整数部分。4.整数部分中:每一个非零数字都 必须结合各个相应的数量单位读出来;每一段连续的“零”只能读成一个“零”,但是某一段连续的“零”的左侧或者右侧不存在非零数字(这里只考虑整数部分)则这一段“零”不应该读出来;5.如果有小数部分,则首先读“点”(以“D”来表示“点”),然后从左至右有顺序地读出各个小数位。在读小数部分的时候不可以使用十、百、千、万、亿等数量单位;但是小数部分的每一个数字都需要读出来,连续的零不可以读成一个“零”,而应该分别读出。6.如果数中有小数点而没有小数部分,则不应该把小数点读出来。例如:-0020030004.567应该读成”F2Q03W04D567”,000.89应该读成”0D89”。请你编写程序帮助新牛把给定的数正确地读出来。输入数据输入文件仅一行,存放了一个数(不超过50字符),其绝对值小于10亿.输出数据输出文件仅一行,输出这个数的正确读法。样例输入-0020030004.567样例输出F2Q03W04D567program cz;var st,s,t:string; p,i:integer;begin assign(input,read.in);reset(input); assign(output,read.out);rewrite(output); readln(st); if st1=- then begin delete(st,1,1); i:=1; while (ilength(st) do begin if (sti0) then begin write(F); break; end; inc(i); end; end; p:=pos(.,st); if (p=0) then p:=length(st); i:=1; while (sti=0) and (i+10) and (i3) then if (sti-30) then t:=t+sti-3+Q else if (s) and (slength(s)0) then t:=t+0; if (i2) then if (sti-20) then t:=t+sti-2+B else if (t) and (tlength(t)0) then t:=t+0; if (i1) then if (sti-10) then t:=t+sti-1+S else if (t)and(tlength(t)0) then t:=t+0; if (i0) then if (sti0) then t:=t+sti+; if (tlength(t)=0) then delete(t,length(t),1); if (t) then begin s:=s+t; case (p-i) div 4 of 1:s:=s+W; 2:s:=s+Y; end; end; inc(i,4); end; if (s=) then s:=0; write(s); if (pos(.,st)0)and(length(st)pos(.,st) then write(D,copy(st,p+2,length(st)-p-1); writeln; close(input); close(output);end.2.背单词(words)源程序名:words.pas/c/cpp输入文件名:word.in输出文件名:word.out时限:1秒问题描述:英语四级考试临近了,小Y却发现他已经把以前学的单词几乎忘光了。好在现在离考试还有一段时间,小Y决定从现在开始夜以继日地背单词。也就是说小Y废寝忘食,一天二十四小时地北单词。今天的日期(时间)是yyyy年mm月dd日hh时min分,考试的时间是yyyy年mm月dd日hh时min分。这之间的所有时间小Y都用来背单词了,那么考试之前他最多能背多少个单词呢?时间紧张,小Y只管数量不管质量。当然有的单词长一些,有的单词短一些。长的单词难背一些,短的单词好背一些。根据小Y的经验,他能一眼看出背某一个单词需要的时间,以分钟为记。现在给你一个字典,请你挑出最多的单词使小Y能在考试前背出来。输入格式:第一行一个整数N,表示字典中的单词数,Naj) then begin t:=ai; ai:=aj; aj:=t; end;end;function getyearday(x:longint):longint;begin if x mod 400=0 then exit(366); if x mod 100=0 then exit(365); if x mod 4=0 then exit(366); exit(365);end;begin assign(input,words.in); assign(output,words.out); reset(input); rewrite(output); readln(n); for i:=1 to n do readln(ai); sort; readln(s); val(copy(s,1,4),year1); val(copy(s,6,2),month1); val(copy(s,9,2),day1); val(copy(s,12,2),hour1); val(copy(s,15,2),min1); time1:=min1; time1:=time1+hour1*60; for i:=1 to day1-1 do time1:=time1+24*60; for i:=1 to month1-1 do begin time1:=time1+monthdayi*60*24; if (getyearday(year1)=366)and(i=2) then time1:=time1+24*60; end; readln(s); val(copy(s,1,4),year2); val(copy(s,6,2),month2); val(copy(s,9,2),day2); val(copy(s,12,2),hour2); val(copy(s,15,2),min2); time2:=min2; time2:=time2+hour2*60; for i:=1 to day2-1 do time2:=time2+24*60; for i:=1 to month2-1 do begin time2:=time2+monthdayi*60*24; if (getyearday(year2)=366)and(i=2) then time2:=time2+24*60; end; time:=time2-time1; for i:=year1 to year2-1 do time:=time+getyearday(i)*24*60; total:=0; while (total=0) do begin inc(total); time:=time-atotal; end; writeln(total); close(input);close(output);end.3. 过河【解题思路】这道题的DP方程很容易想,用fi表示青蛙跳到坐标为i的点时最少踩到的石子个数,则有:fi=min(fi-j+ai),ai=1表示坐标为i的点有石子。但是,“对于全部的数据,L=109”数组是不可能了再一看,“1=M=100”,偌大一个长10亿的桥,上面的石子竟然只有100个,这就不可避免的使桥上出现了大片大片的空当。已知1=S=Tstonej then swap(stonei,stonej); /排序。不用快排是因为懒得敲代码了 stonem+1:=l; for i:=1 to m+1 do if stonei-stonei-1=100 then cp_stonei:=cp_stonei-1+100 else cp_stonei:=cp_stonei-1+stonei-stonei-1;/空白压缩 l:=cp_stonem+1;/压缩后的桥长需要变更 for i:=1 to m do acp_stonei:=1;/压缩后有石头的地方标记为1 f0:=0;/边界 for i:=1 to l+t do begin fi:=maxlongint-1; for j:=t downto s do if ij then break else if fi-j+aifi then ans:=fi;/寻找答案,注意循环用LL+t可以避免很大的时间消耗 writeln(ans); close(input);close(output);end.4.图形复原(resume)源程序名:resume.pas/c/cpp输入文件名:resume.in输出文件名:resume.out时限:1秒问题描述:小y是个几何迷。有一天,他画了一个n边形,且将n个顶点用1,2,n这n个连续自然数随手编了一下号。然后他又画了一些不相交的对角线。如下图:他把所有的边和对角线都写在一张纸上。对于上图,他写了:(1,3),(3,2),(2,4),(4,5),(5,1),(1,4),(3,4)。过了几个星期,他无意中发现了这张写着字的纸,可是怎么也找不着那个几何图形了。他很想把n边形的编号复原,可是试了一天也没弄出来。你能帮助他吗?输入格式 :第一行n(nn) then begin if (ga1an) then begin for i:=1 to n-1 do write(ai, );输出结果 writeln(an); close(output); halt; end; exit; end; for i:=1 to n do枚举下一个点的编号产生新状态 if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Cefadroxil-13C6-BL-S-578-sup-13-sup-C-sub-6-sub-生命科学试剂-MCE
- 江门职业技术学院《数字合成基础(AE)》2023-2024学年第一学期期末试卷
- 武汉晴川学院《理论与实践(二)》2023-2024学年第一学期期末试卷
- 浙江长征职业技术学院《案例与论文写作》2023-2024学年第一学期期末试卷
- 2024-2025学年宿州市重点中学数学七年级第一学期期末学业水平测试模拟试题含解析
- 江苏省南通港闸区五校联考2024-2025学年化学九年级第一学期期末监测试题含解析
- 大连海洋大学《全科医学》2023-2024学年第一学期期末试卷
- 企业资金流动的审计策略分析
- 辽宁特殊教育师范高等专科学校《现代食品营养与安全自科类》2023-2024学年第一学期期末试卷
- 2025届北京理工大附中分校七年级数学第一学期期末教学质量检测试题含解析
- 浙江省台州市2024-2025学年高一下学期6月期末英语试题
- 光伏发电项目施工方案(安装)光伏施工方案
- 行为安全观察与沟通
- 疲劳风险培训课件
- GB/T 45707-2025皮革铬鞣鞋面用坯革规范
- 2025年中小学教师职称评审考试试卷及答案
- 2025年人教版小学二年级科学(下册)期末试卷及答案
- 医院培训课件:《高血压及糖尿病患者管理与治疗》
- 劳动教育和各学科融合
- 中职学校教材管理制度
- 改革开放简史
评论
0/150
提交评论