noip历届程序填空题汇编.docVIP

  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文档。上传文档
查看更多
noip历届程序填空题汇编

历届程序填空题汇编 2009年普: 1.(最大连续子段和)给出一个数列(元素个数不多于100),数列元素均为负整数、正整数、0。请找出数列中的一个连续子数列,使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求该子数列包含的元素个数最多,并输出这个最大和以及该连续子数列中元素的个数。例如数列为4,-5,3,2,4时,输出9和3;数列为1 2 3 -5 0 7 8时,输出16和7。 var a: array[1..100] of integer; n, i, ans, len, tmp, beg: integer; begin read(n); for i := 1 to n do read(a[i]); tmp := 0; ans := 0; len := 0; beg := ① ; for i := 1 to n do begin if tmp + a[i] ans then begin ans := tmp + a[i]; len := i - beg; end else if ( ② ) and (i - beg len) then len := i - beg; if tmp + a[i] ③ then begin beg := ④ ; tmp := 0; end else ⑤ ; end; writeln(ans, , len); end. 2. (国王放置) 在n*m的棋盘上放置k个国王,要求k个国王互相不攻击,有多少种不同的放置方法。假设国王放置在第(x,y)格,国王的攻击的区域是:(x-1,y-1), (x-1,y),(x-1,y+1),(x,y-1),(x,y+1),(x+1,y-1),(x+1,y),(x+1,y+1)。读入三个数n,m,k,输出答案。题目利用回溯法求解。棋盘行标号为0~n-1,列标号为0~m-1。 var n, m, k, ans: integer; hash: array[0..4, 0..4] of integer; procedure work(x, y, tot: integer); var i, j: integer; begin if tot = k then begin inc(ans); exit; end; repeat while hash[x, y] 0 do begin inc(y); if y = m then begin inc(x); y := ① ; end; if x = n then exit; end; for i := x - 1 to x + 1 do if (i = 0) and (i n) then for j := y - 1 to y + 1 do if (j = 0) and (j m) then ② ; ③ ; for i := x - 1 to x + 1 do if (i = 0) and (i n) then for j := y - 1 to y + 1 do if (j = 0) and (j m) then ④ ; inc(y); if y = m then begin inc(x); y := 0; end; if x = n then exit; until false; end; begin read(n, m, k); ans := 0; fillchar(hash, sizeof(hash), 0); ⑤ ; writeln(ans); End. 2008年普: 1.(字符串替换)给定一个字符串S(S仅包含大小写字母),下面的程序将S中的每个字母用规定的字母替换,并输出S经过替换后的结果。程序的输入是两个字符串,第一个字符串是给定的字符串S,第二个字符串S’由26个字母组成,它是a~z的任一排列,大小写不定,S’规定了每个字母对应的替换字母:S’中的第一个字母是字母A和a的替换字母,即 S中的A用该字母的大写替换,S中的a用该字母的小写替换;S’中的第二个字母是字母B 和b的替换字母,即S中的B用该字母的大写替换,S中的b用该字母的小写替换;… …以

文档评论(0)

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

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

1亿VIP精品文档

相关文档