电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

全国信息学奥林匹克联赛(NOIP2010)复赛_普及组_解题报告(pascal)

全国信息学奥林匹克联赛(NOIP2010)复赛_普及组_解题报告(pascal)_第1页
1/6
全国信息学奥林匹克联赛(NOIP2010)复赛_普及组_解题报告(pascal)_第2页
2/6
全国信息学奥林匹克联赛(NOIP2010)复赛_普及组_解题报告(pascal)_第3页
3/6
全国信息学奥林匹克联赛(NOIP2010)复赛 普及组 解题报告 1.数字统计 (two.pas/c/cpp) 【问题描述】 请统计某个给定范围[L, R]的所有整数中,数字2 出现的次数。 比如给定范围[2, 22],数字2 在数2 中出现了1 次,在数12 中出现1 次,在数20 中出现1 次,在数21 中出现1 次,在数22 中出现2 次,所以数字2 在该范围内一共出现了6次。 【算法思路】 枚举法,依次将L至R转化为字符串,查找当中有多少个”2”. 【程序代码】 program tw o; var l,r:1..10000; i,j,h,c:longint; s:string; begin assign(input,'tw o.in'); assign(output,'tw o.out'); reset(input); rew rite(output); readln(l,r); c:=0; for i:=l to r do begin str(i,s); h:=length(s); for j:=1 to h do if s[j]='2' then c:=c+1; end; w riteln(c); close(input); close(output); end. 2.接水问题 (water.pas/c/cpp) 【问题描述】 学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。若当前接水人数n’不足m,则只有n’个龙头供水,其它m− n’个龙头关闭。 现在给出n 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。 【算法思路】 纯粹模拟,用repeat-until循环。 【程序代码】 program water; var n,m,i,r,min,j:longint; f:boolean; w:array[1..20000]of integer; begin assign(input,'water.in'); assign(output,'water.out'); reset(input); rewrite(output); readln(n,m); for i:=1 to n do read(w[i]); r:=m; repeat min:=min+1; for j:=1 to m do begin if w[j]<>0 then dec(w[j]); if (w[j]=0)and(r0 then f:=false; until f and (r=n); writeln(min); close...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

全国信息学奥林匹克联赛(NOIP2010)复赛_普及组_解题报告(pascal)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部