普及组近5年NOIP试题分析.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
普及组近5年NOIP试题分析.ppt

普及组近5年NOIP试题分析 安徽师大附中 叶国平 NOIP2010——数字统计 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1 次,在数20中出现1 次,在数21中出现1 次,在数22 中出现2次,所以数字2在该范围内一共出现了6次。 1≤ L ≤ R≤10000。 NOIP2010——数字统计 从L到R枚举每一个数i,对i进行分离数字,直接统计有多少个2...... 分离数字的过程 void count(int n) {while (n>0) {if (n%10==2) ans++; n/=10; } } NOIP2010——接水问题 学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。若当前接水人数n’不足m,则只有n’个龙头供水,其它m?n’个龙头关闭。 NOIP2010——接水问题 现在给出n 名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。 1 ≤ n ≤ 10000,1 ≤m≤ 100 且m≤ n;1 ≤ wi ≤ 100。 样例输入 样例输出 8 4 163 23 71 87 32 70 93 80 76 NOIP2010——接水问题 纯模拟+贪心 每次找最短的队伍排,模拟一下。。。 NOIP2010——导弹拦截 某国研发出了一种新的导弹拦截系统,凡是与它的距离不超过其工作半径的导弹都能够被它成功拦截。当工作半径为0 时,则能够拦截与它位置恰好相同的导弹。但该导弹拦截系统也存在这样的缺陷:每套系统每天只能设定一次工作半径。而当天的使用代价,就是所有系统工作半径的平方和。 某天,雷达捕捉到敌国的导弹来袭。由于该系统尚处于试验阶段,所以只有两套系统投入工作。如果现在的要求是拦截所有的导弹,请计算这一天的最小使用代价。 NOIP2010——导弹拦截 第一行包含4 个整数x1、y1、x2、y2,每两个整数之间用一个空格隔开,表示这两套导弹拦截系统的坐标分别为(x1, y1)、(x2, y2)。 第二行包含1 个整数N,表示有N 颗导弹。接下来N 行,每行两个整数x、y,中间用一个空格隔开,表示一颗导弹的坐标(x, y)。不同导弹的坐标可能相同。 对于100%的数据,1 ≤ N ≤ 100000,且所有坐标分量的绝对值都不超过1000。 NOIP2010——导弹拦截 样例输入 样例输出 0 0 6 0 30 5 -4 -2 -2 3 4 0 6 -2 9 1 NOIP2010——导弹拦截 按照到第一个点的距离排序,确定了第一个点拦截的范围,剩下来的一定是第二个点拦截,用类似后缀和统计一下,枚举断点,统计和的最小值就行了。 NOIP2010——三国 输入样例 输出样例 8 1 42 24 10 29 27 12 58 77 31 8 16 26 80 6 25 3 36 11 5 33 20 17 13 15 77 9 4 50 19 NOIP2010——三国 显然每个武将对应的最大默契值都无法选到,但是可以保证能选到次大的。所以就在次大的中选一个最大的作为答案咯。这样计算机肯定也得不到更大的值所以一定是可以获胜的。 NOIP2010——三国 NOIP2011——数字反转 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2) -1,000,000,000 ≤ N≤ 1,000,000,000。 样例输入 样例输出 -380 -83 NOIP2011——数字反转 模拟,涉及数字分离和组合,以及负数判断 程序 cin>>n; if(n<0)//判断负数 {flag=true; n=-n; } while(n>0)//反转 {ans=(ans*10)+n%10; n/=10; } if(flag)ans=-ans; cout<<ans<<endl; NOIP2011——统计单词数 一般的文本编辑器都有查找单词

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档