




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NOIP2008普及组复赛 解题报告 NOIP2008解题报告张恩权一、ISBN号码基础字符串处理题,心细一点的基本都能得满分。参考程序:program isbn;const inp=isbn.in; oup=isbn.out;var i,j,k,ans:longint; s:string; ch:char;procedure flink; begin assign(input,inp); reset(input); assign(output,oup); rewrite(output); end;procedure fclose; begin close(input); close(output); end;begin flink; readln(s);/ 输入字符串 j:=0; i:=1; ans:=0; while j9 do begin if si in 0.9 then/如果是数字,那么累加到ans中,共9个数字 begin inc(j); inc(ans,(ord(si)-ord(0)*j); end; inc(i); end; ans:=ans mod 11;计算识别码 if ans=10 then ch:=X else ch:=chr(ord(0)+ans);/把识别码转换成字符,方便输出 if slength(s)=ch then write(Right) else write(copy(s,1,12)+ch);/输出正确的识别码 fclose;end.二、排座椅用的是赛前集训时提到的贪心,当时说某些题目用贪心可以得部分分,但是本题贪心可以得满分的。当然本题的贪心需要预处理下,开2个一维数组,rowi录如果在第i行加通道,可以分割多少对调皮学生,coli记录如果在第j列加通道,可以分割多少对调皮学生,最后贪心法输出分割学生最多的前K行和前L列。参考程序:program seat;const inp=seat.in; oup=seat.out;var flag,m,n,k,l,d,i,j,x,y,x1,y1:longint; tmp,col,row:array1.1000 of longint; s,s1:ansistring;procedure flink; begin assign(input,inp); reset(input); assign(output,oup); rewrite(output); end;procedure fclose; begin close(input); close(output); end;function min(a,b:longint):longint; begin if ak do inc(i); while tmpjk do dec(j); if ij; if mj then qsort(m,j); if I0 then begin inc(j); tmpj:=rowi; end; end; qsort(1,j);/对tmp数组排序 flag:=tmpk;/flag为前K项的最小值 i:=1; j:=0; while (i=n) and (j=flag then /如果该行能分割的人数不少于flag,说明此处可以添加通道 begin write(i); inc(j); if jk then write( ); end; inc(i); end; writeln;/下面是求列通道,思想同上 j:=0; for i:= 1 to n do begin if coli0 then begin inc(j); tmpj:=coli; end; end; qsort(1,j); flag:=tmpL; i:=1; j:=0; while (i=m) and (j=flag then begin write(i); inc(j); if jL then write( ); end; inc(i); end; fclose;end.三、传球游戏直接dp,似乎说递推更确切点。f(i,k)表示经过k次传到编号为i的人手中的方案数。那么可以推出下面的方程:f(i,k)=f(i-1,k-1)+f(i+1,k-1) (i=1或n时,需单独处理)边界条件:f(1,0)=1;结果在f(1,m)中参考程序:program ball;const inp=ball.in; oup=ball.out;var i,j,k,n,m:longint; f:array0.30,0.30 of longint;procedure flink; begin assign(input,inp); reset(input); assign(output,oup); rewrite(output); end;procedure fclose; begin close(input); close(output); end;begin flink; readln(n,m); fillchar(f,sizeof(f),0); f1,0:=1; for k:=1 to m do/注意此处2个循环的次序 begin f1,k:=f2,k-1+fn,k-1; for i:= 2 to n-1 do fi,k:=fi-1,k-1+fi+1,k-1; fn,k:=fn-1,k-1+f1,k-1; end; write(f1,m); fclose;end.四、立体图Pku原题,编号2330算不上难题,但是比较麻烦,细心点就ok了。先计算好画布的大小,再写一个根据左下角坐标绘制一个单位立方体的子程序。然后遵循下面法则,不停绘制若干个立方体。(此处能体现出分割程序的伟大)因为要不停的覆盖,所以要遵循“视觉法则”:1. 先绘里层再绘外层2. 先绘底层再绘上层3. 先回左边再绘右边参考程序:program drawing;const inp=drawing.in; oup=drawing.out;var m,n,i,j,k,x,y,h,tmp,maxx,maxy:longint; map:array1.1000,1.1000 of char;/画布 a:array1.50,1.50 of integer;/记录输入的矩阵procedure flink; begin assign(input,inp); reset(input); assign(output,oup); rewrite(output); end;procedure fclose; begin close(input); close(output); end;procedure print;/输出画布 var i,j:longint; begin for i:= 1 to maxx do begin for j:= 1 to maxy do write(mapi,j); if imaxx then writeln; end; end;procedure draw(x,y:longint);/在画布(map数组)上绘制左下角坐标为(x,y)的一个单位立方体 begin mapx,y:=+;mapx,y+1:=-; mapx,y+2:=-;mapx,y+3:=-;mapx,y+4:=+; dec(x); mapx,y:=|;mapx,y+1:= ; mapx,y+2:= ;mapx,y+3:= ;mapx,y+4:=|; mapx,y+5:=/; dec(x); mapx,y:=|;mapx,y+1:= ; mapx,y+2:= ;mapx,y+3:= ;mapx,y+4:=|; mapx,y+5:= ;mapx,y+6:=+; dec(x); mapx,y:=+;mapx,y+1:=-; mapx,y+2:=-;mapx,y+3:=-;mapx,y+4:=+; mapx,y+5:= ;mapx,y+6:=|; dec(x); inc(y); mapx,y:=/;mapx,y+1:= ; mapx,y+2:= ;mapx,y+3:= ;mapx,y+4:=/; mapx,y+5:=|; dec(x);inc(y); mapx,y:=+;mapx,y+1:=-; mapx,y+2:=-;mapx,y+3:=-;mapx,y+4:=+; end;begin flink; for i:= 1 to 1000 do for j:= 1 to 1000 do mapi,j:=.; /初始化画布 readln(m,n); /计算画布大小maxx * maxy maxy:=n*4+1+m*2; maxx:=0; for i:= 1 to m do begin tmp:=0; for j:= 1 to n do begin read(ai,j); if ai,jtmp then tmp:=ai,j; end; tmp:=tmp*3+3+(m-i)*2; if tmp maxx then maxx:=tmp; readln;end; /开始
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030骨科植入物3D打印材料生物学性能临床验证进展
- 2025-2030飞行汽车充电基础设施前瞻性布局研究报告
- 2025-2030预制菜行业标准体系构建与品质升级研究
- 2025-2030非洲滑石矿产资源勘探开发与中国企业投资机会
- 2025-2030青年公寓阳台设计趋势与空间利用率优化报告
- 2025-2030青年公寓绿色建筑标准与可持续发展实践白皮书
- 2025-2030青年公寓宠物友好型社区运营实践与市场需求调研
- 2025-2030隐私计算技术在金融风控中应用
- 2025-2030长租公寓消防安全标准与应急管理体系建设报告
- 销售数据分析与客户管理方法
- 与生育相关的慢性子宫内膜炎诊治专家共识(2025年版)解读
- 2025年中国近眼显示行业市场全景分析及前景机遇研判报告
- 2025个人住房公积金借款合同范本
- 2025贵州民航产业集团有限公司社会招聘考试参考试题及答案解析
- 2025年江西省高考物理试卷真题(含答案及解析)
- 光伏水面专项施工方案
- 东北三省2025~2026学年度上学期高考单元检测示范卷 数学(选择性必修第一册 人教版 第1章)(含答案)
- 四川省党校在职研究生招生考试真题(附答案)
- Z20名校联盟(浙江省名校新高考研究联盟)2026届高三第一次联考 语文试卷(含答案详解)
- 元器件采购基本知识培训课件
- 2024广西公需课高质量共建“一带一路”谱写人类命运共同体新篇章答案
评论
0/150
提交评论