- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 临床输血操作技术规范、输血制度(2025版).pptx VIP
- 部编版四年级上学期语文期末整理分类复习强化练习题〔有答案〕.doc VIP
- 公路养护及占道施工作业安全检查表、人员、车辆、机具设备管理用表、进、出场登记表、安全设施图表.pdf VIP
- 医院设备故障应急处理流程.docx VIP
- 植物学课程课件:植物系统学与分子进化.ppt VIP
- 部编版语文四年级上册第16课《麻雀》 配套练习(含解析).pdf VIP
- 82页精益制造数字化转型智能工厂三年规划建设方案PPT.pptx VIP
- 成人癫痫持续状态护理专家共识解读PPT课件.pptx VIP
- JSCC B系列变频器产品手册.pdf VIP
- 认识医生和护士幼儿园助教幼儿园医学科普.pptx VIP
原创力文档


文档评论(0)