2011年马鞍山市中学信生息学奥林匹克竞赛题目分析.docVIP

2011年马鞍山市中学信生息学奥林匹克竞赛题目分析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2011年马鞍山市中学信生息学奥林匹克竞赛题目分析

本次选拔赛试卷题目的说明 谷晓华 写得不是很正式。首先说一下,一二两道题考察的应该是基础题,不过数据量有点大而已,三四两题都是DP,从选拔参加省赛的角度是比较合理的。但是DP的确很重要,这两道题也比较重要,都是由基本题型变过来的,所以说一下。 一:文件加密 这个是一个文件中字符串操作的题目,考察的结果令人是十分满意 重点是你是否领悟到了“每行一个不超过 1000 个字符的字符串”意义 1:最容易犯错的题目是用一个string的字符串去读入,受长度限制所以得分非常的少,但是可以使用ansistring字符串类型来突破255位长度限制,而且字符串函数的执行效率比较高; 参考程序(吴天舒100分程序) var a:array[1..50000] of ansistring; n:longint; i,j,k,s,t:longint; te:char; begin assign(input,encrypt.in); assign(output,encrypt.out); reset(input); rewrite(output); readln(n); for i:=1 to n do begin j:=0; readln(a[i]); a[i]:=a[i]+ ; while jlength(a[i]) do begin inc(j); if a[i][j] then begin s:=j; while a[i][j] do inc(j); t:=j-1; for k:=s to (s+t) div 2 do begin te:=a[i][t-k+s]; a[i][t-k+s]:=a[i][k]; a[i][k]:=te; end; end; end; writeln(a[i]); end; close(input); close(output); end. 2:另外一种做法是用字符数组来记录,但是有些程序由于过程过于繁琐导致内存和空间的超时, 参考程序:丁易的程序(只有五十分,其他内存崩溃) program encrypt; var j,n,i,s:longint; a:array[1..50000]of char; k:char; l:array[1..50000]of longint ; begin assign(input,encrypt.in); assign(output,encrypt.out); reset(input); rewrite(output); readln(n); for i:=1 to n do begin repeat //repeat read(k); l[s]:=l[s]+1; //writeln(k); if k then a[l[s]]:=k; if k= then begin for j:=l[s]-1 downto 1 do write(a[j]);write( );s:=s+1;end; until (kchr(31))or (kz); for j:=l[s]-1 downto 1 do write(a[j]);write( );s:=s+1; writeln; readln; end; close(input); close(output); end. 第二题:极品素数 这个题目其实比较简单,我们可以用筛选法求素数的方法求出1..n中所有的素数,扫描一次求出所有素数的个数,然后再扫描一线1..m(素数的个数)中有多少个素数,即可。 另外如果直接用朴素的直接判断的方法可以得到八十分(胡,高,丁) 参考程序(100分 汪已森) program super; var a:array[2..1000001] of longint; f:array[2..1000001]of boolean; i,j,n,total,t:longint; f1,f2:text; begin assign(f1,super.in);reset(f1); assign(f2,super.out);rewrite(f2); readln(f1,n); fillchar(f,sizeof(f),true); tot

文档评论(0)

cunzhu74 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档