- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2010noip普及解题报告书
2010年NOIP 普及组解题报告
题目分析:
一、数字统计
此题,曾经在某OJ上看到过原题。要求和实现都非常简单。无非是,枚举出所有在范围内的数字,然后对数字进行拆分,对每一位数字进行判断。
一个朴素的for循环,嵌套一个while循环,就可以解决这道题目。
下面是程序的核心部分:
for ( i = l ; i = r ; i++ )
{
t = i;
??? while (t 0)
?? ?{
????????? y = t % 10;
????????? if (y == 2) s++;
????????? t /= 10;
??? }
}
此题丢分,绝对可以认为是绝不应该出现的事情。往参赛选手能够更加注意自己的程序细节,避免问题出现。
?
二、接水问题
问题描述隐晦,引导学生朝着纯枚举的思想前进,部分用秒枚举的学生会导致严重超时。但题目的核心思想却应该是模拟问题发生的本质顺序。也就是,每个新加入的人去接水的位置,一定是当前数列中和最小的那列。所以实现的方法,就是每个新数字,进入前,找出当前序列中最小的位置,加入进去。直到所有的数字都加入进去后结束。最终从所有的数字中,找出最大的那个值,即为所求。
但是,其实有更合适的模型——插入法排序。
即从大到小排序后,无非就是把数字加入到最后一个数值之上,然后运用插入法排序原理,把这个新数插入到合适位置。最终输出的是数组的最大值即可。
下面是程序的核心部分:
首先,对前m个数进行排序,然后后面的n – m个数,就需要模拟插入了:
??? for (i = m ; i n ; i++ )
??? {
????? cin t;
????? t += a[m - 1];
????? j = m - 1;
????? while (j 0 a[j - 1] t)
????? {
??????? a[j] = a[j - 1];
??????? j--;
????? }
????? a[j] = t;
??? }
最后a[0]一定是最大值。
非常想用这道题,告诉那些忽视插入法排序的学生,当你写不好快排的时候,插入法,帮我们解决了很多为了一个数值而要排全部数值的问题。虽然效率和选择、冒泡一样,但插入法确实有它特殊之处。
?
三、导弹拦截
再次见到导弹拦截,颇感亲切,但是这次的导弹拦截,加入了立体环节,也从借用原题概念,让一个不存在的动态规划方法,影响解题思路。
其实,题目的核心解题思想还是贪心和枚举。只不过要枚举的有些策略而已。我也曾试过了,用单位长度去枚举两个点的半径,结果残酷的只过了两个点。还是经过学生的解释,明白了排序后的贪心策略。所以,向学生学习,也是老师的必修课程。我再次强调,我经常向学生学习,教学相长,不外乎如此。所以,希望更多的老师,能够时常放下自己的架子和身份,多多向学生请教,我们共同的成长。
按照到第一个点的距离平方排序之后,就可以不断让最远的点,不用离开第一点半径,进入第二点半径。在这个过程中,第一点半径逐渐缩小,第二点半径,可能发生增大。就需要一步步统计出,两个半径平方的最小值。最终达到题目要求。
因为考虑到点的数量是100000,所以,无比需要使用快速排序。题目如果想写的较为简洁,还是使用结构体比较方便。
首先定义一个结构体,包括x,y,jr1(距离第1点半径平方),jr2(距离第2点半径平方)。
struct dian
{
? int x;
? int y;
? int j1r;
? int j2r;
}d[100050];
这里面顺便定义了一个10万数量级的数组。
?
?
快速排序的函数:
void qsort(int s, int e)
{
? dian t;
? int l, r;
? if (s = e) return ;
? l = s;
? r = e;
? t = d[s];
? while (l r)
? {
??? while (l r d[r].j1r = t.j1r) r--;
??? d[l] = d[r];
??? while (l r d[l].j1r = t.j1r) l++;
??? d[r] = d[l];
? }
? d[r] = t;
? qsort(s, r - 1);
? qsort(r + 1, e);
}
然后就是逐渐退出和更新半径的过程了:
r = d[n].j1r;
??? m2 = 0;
??? for (i = n ; i = 1 ; i--)
??? {
??????? if (d[i].j2r m2) m2 = d[i].j2r;
??????? tr = d[i - 1].j1r + m2;
??????? if ( r tr ) r = tr;
??? }
最后r即为最小消
您可能关注的文档
- 2005国产轿车消费者满意度调查报告书.doc
- 2005年xx市办公设备市场调查报告书.doc
- 2005、2006年保险中介市场发展报告书.doc
- 2005年云梦县政府工作报告书.doc
- 2005年上半年深圳房地产市场发展报告书.doc
- 2005年地产代理品牌价值报告书.doc
- 2005年度中国大学生主观幸福感调查与研究报告书.doc
- 2005年二季度汽车行业运行监测报告书.doc
- 2005年林业项目可行性研究报告书.doc
- 2005年汽车行业分析报告书.doc
- 关于请求易地扶贫搬迁的申请大全.docx
- 国防安全演讲稿.docx
- 教科版二年级上册科学全册新质教学课件(配2025年秋改版教材).pptx
- 部编人教版二年级上册道德与法治全册新质教学课件(配2025年秋改版教材).pptx
- 2023年三亚市公务员考试行测真题及参考答案详解一套.docx
- 中关村实验室清华大学国防科大2025网络空间测绘技术白皮书139页.pdf
- 汽车电子行业系列报告之激光雷达篇激光雷达星辰大海国产供应链初长成-22011129页.pdf
- 非公路轮胎行业深度报告OTR轮胎需求盈利双高轮胎蓝海市场-23031718页.pdf
- 电子行业深度报告自动驾驶加速驶来车载激光雷达开启百亿蓝海市场-22011734页.pdf
- 电子行业佰维存储股份有限公司投资价值研究报告专注存储蓝海一体化解决方案龙头-22121292页.pdf
最近下载
- 小学一年级数学上册每课一练(全册打印版) .pdf VIP
- 2022-2023学年重庆市永川区八年级(上)期末数学试卷.doc VIP
- xxxx局文书档案整理及数字化项目实施方案(技术标 53页).doc VIP
- 水利水电工程合理使用年限及耐久性设计规范(SL 654-2014).pdf VIP
- 2024-2025学年重庆市永川区八年级(上)期末数学试卷(含解析).docx VIP
- 《汽车理论》全套课件 (余志生主编 第五版).ppt VIP
- 3500词汇速记(1~60讲全部讲义).pdf VIP
- 2025年中考数学几何模型综合训练(通用版)专题25相似模型之母子型(共边共角)模型解读与提分精练(教师版).docx VIP
- 四人合伙经营餐饮合作协议书.doc VIP
- 抹灰技术交底.pdf VIP
文档评论(0)