




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省浙东北联盟2026届高三化学第一学期期中质量检测试题含解析
- 北京市顺义区杨镇一中2026届高二化学第一学期期末综合测试试题含答案
- 水库移民安置管理岗位面试实战模拟题
- 2026届吉林省吉化一中化学高一上期末复习检测试题含解析
- 安徽省阜阳市成效中学2026届化学高三第一学期期末质量检测模拟试题含解析
- 宋朝行政制度解读
- 面试必 备:智慧客服常见问题及答案
- 求职人员信息技术能力构建
- 高品质AI面试题库:全方位掌握职业趋势
- 萜类化合物讲解
- 医疗机构从业人员规范
- 《研学旅行相关概念与理论基础综述》1900字
- 医院培训课件:《股骨头坏死》
- 保险基础知识简读本(2024版)
- 集团公司司库管理办法
- 住院患儿实施院内转运临床实践指南2023版课件
- 主播新手上路-打造游戏直播与娱乐新风向
- 2024-2025学年中职数学基础模块 下册高教版(2021·十四五)教学设计合集
- 第1-4章综合检测试卷2024-2025学年浙教版数学八年级上册
- 市场营销经理助理考试题库
- 初中数学新课标下综合实践-项目式学习的思与行
评论
0/150
提交评论