您当前的位置:首页 > 时尚 > 内容

如何用编程算总分(怎样用电脑算平均分)

如何用编程算总分(怎样用电脑算平均分)?如果你对这个不了解,来看看!

2021年信息学竞赛如何备考?,下面是异步社区给大家的分享,一起来看看。

如何用编程算总分

2021年信息学奥赛如何备考?

本文整理自《编程竞赛宝典》一书的作者张新华的直播内容,主要关于信息学奥赛相关的知识,比如信息获取渠道、考前准备、考试技巧等。

— 01 —

获取竞赛信息的权威渠道

参加信息学竞赛,获取正确的信息很重要。很多家长习惯于从微信的朋友圈、公众号那里寻找关于信息学竞赛的信息,但是这些信息并不一定是第一手资料,信息学竞赛信息获取的权威渠道应该是全国青少年信息学奥林匹克竞赛的官网(www.noi.cn),因为信息学竞赛系列活动是由中国计算机学会来承办的,所以,一切与信息学竞赛相关的规则,比赛等信息都应该在中国计算机学会主办的这个官网上获取。

其次,可以从这个网站下载PDF格式的竞赛大纲,这是2021年4月发布的,我们可以对照上面的考点进行有针对性的复习,当然,适当的多学些超纲内容总是有好处的。比如前些年的NOIP复赛的有些题目,如果用超纲的算法来解决的话,会轻松很多。

(https://noi.ccf.org.cn/xw/2021-04-02/724387.shtml)

NOIP竞赛分为初赛和复赛,初赛报名时间一般在每年的9月初,CSP第一轮认证约在每年的10月初,各省的初赛分数线是不一样的,有的省份分数线非常低,二三十分就可以出线,有的省份分数线高到七八十分,所以有必要在NOI官网上查找一下历年的各省分数线,做到心中有数。

— 02 —

初赛怎么准备

初赛的复习不必过早准备,基础好的建议考试前半个月的时间复习,基础较弱的建议考试前一个月的时间复习即可。但如果本省的分数线很高,自己基础又真的很弱的话,可能准备的时间就要长一些了。

千万不要轻视初赛,初赛是有一定难度的,特别是在一些分数线较高的省份,很多学生初赛考了两三年都过不去的情况也是有的,甚至有些学生复赛可以考个比较高的分数,但是卡在初赛上过不去的情况也是很常见的。因为读取别人的代码和自己写代码是两码事。

初赛用书注意不要再用好几年前的辅导书了,要用近两年新出版的辅导书,因为考试的形式和内容和以前完全不一样了。推荐《信息学竞赛金牌导航 初赛篇》这本书,是由中山大学张子臻副教授主编的。

初赛近五年题目分析

初赛考察通用和实用的计算机科学知识,以笔试为主,部分省市以机试方式认证。

阅读程序和程序完善题入门组以数学,模拟和简单算法为主,提高组要加强字符串和数据结构的训练。

入门组

来看一下近五年初赛选择题分析,入门组15道题,一题两分,共30分,可以明显看出,计算机知识减少了,数学,数据结构的题目增加了。

剩下的70分是阅读程序和完善程序,主要集中在字符串处理和简单的算法。

提高组

再来看提高组的选择题分析,算法部分明显增加了,计算机知识明显减少了。

提高组的程序题主要集中在算法和数据结构。

选择题里计算机通识部分的考题数近几年明显变少,取而代之的是数学、数据结构等更偏向于编程本身的内容。这意味着竞赛越发注重编程能力的提升,而非理论知识的死记硬背。以往仅靠死记硬背和答题技巧通过初赛,但是复赛却一败涂地的做法,肯定是行不通了。

按照这个趋势备战2021 年CSP-J/S初赛,选择题重点应该在算法、数学、数据结构上。算法部分以复杂度、排序为主,数学以排列组合为主,数据结构则以栈、链表、树、图的理论知识、特性、操作为主。

阅读程序和程序完善题:入门组以数组、模拟和简单算法为主;提高组中字符串和数据结构是常考点。

无论大题考察的知识点是什么,考生加强自身代码基本功很重要。读考题代码和自己写代码是两码事,考前还是应当花时间刷题,读一些陌生的代码,理解其他人的代码,尝试推导程序运行逻辑。

— 03 —

复赛怎样准备

怎么准备复赛,每个人有不同的方法,我这里推荐的方法,可以做为参考:

初期:一题多解的思维训练

我们都知道,信息学竞赛非常有意思的一个方面就是可以用多种方法来解题,不要局限于仅仅把一道题做出来就行。可以看看这道题是不是还有其他的解法,是不是可以在算法上,在细节上再进行优化,思考的越深入,算法理解的越通透,我们平常学习的知识点呢是一个一个单独的孤立的知识点,怎样把这些点想办法连成一个网状的结构,让它们之间互相关联,是一种非常好的思维训练方法。

近几年的竞赛中,考察选手“创新意识”的试题越来越多,即一道试题不能使用一个经典的现成算法来解决,而需要选手根据问题的需要,构造合适的数据结构,创造合适的算法解决问题。这种试题能有效的避免选手“押题猜宝”、考前“临阵磨枪”背诵算法代码,或者做几道经典题“以不变应万变”;选拔出真正具有分析、思考、编程能力的人才。

在《编程竞赛宝典》这本书的89页就讲解了一个多种解法的例题,这儿给出题目描述,读者可以尝试思考下,如何用三重循环、二重循环、一重循环、零重循环来求解。

【题目描述】

把100元钱换成10元、5元、1元的零钱,求每种零钱都至少各有一张的情况下,共有多少种兑换方案?

后期:模拟竞赛

多参加实时的在线考试,平时的做题训练,和实时的在线考试,是截然不同的感觉,不经历模拟实战,等到了真正考试的时候,心里会紧张,心态会波动,不容易有好的比赛状态。

模拟竞赛还有一个好处是熟悉如何选择正确的顺序答题。不要一上来拿到题就做,要分析题目的难易度,优化做题策略。要做到这一点,就必须要把题目全部看完,确定题目的难易程度,决定做题顺序。正常情况下,我们的潜意识都认为题目的难度是逐渐增加的,但是曾经有一年复赛,出题者故意把难题放在了前面。结果考生一看,哇,第一题这么难啊,信心受到了极大地打击;再看第二题,感觉更难啊,还是不会做,这时心理就慌了;没办法,看第三题吧,结果发现第三题难题目描述就是满满一页纸,看十分钟看不明白讲的什么意思,这时心态就崩溃了;那就看第四题吧,一看,还好,描述只有两句话,感觉可以做出来的样子,于是就开始做了。但实际上,第四题是最难的一道题,做一两个小时都做不出来,而第三题,如果花半个多小时到一个小时看懂了题目,写起来却是最简单的一道题。结果那一年很多考生在这上面翻车了,所以切记,一定要把题目全部看完再动手编程,不要看周围的人已经噼里㕷拉的敲键盘了,心里就慌,想的怎么他们那么强,写的那么快?你应该这么想,看都没看完题目就急不可耐的写代码的人,太冲动了,一看就是菜鸟啊。真正的高手都是象我这样谋定而后动的。

所以说,自信,给自己一个积极的心理暗示,其实对你的现场发挥是很重要的。前几天CCF举办的NOI线上赛,我一个学生告诉我,他看错了两道题目,我说,你急什么呢?真正你会做的题,不差这一点时间的,你不会做的题,再多时间也没用,一定要把握比赛的节奏,一定要稳啊。

— 04 —

一些小技巧

在复习的时候有一些小技巧,简单地介绍一下,比如离比赛的时间越来越近了,感觉自己还有很多内容不熟,心里没底,但是又没有太多时间了,怎么办呢?可以考虑多看些题解,比如说动态规划题目,最花时间的最有难度的是动态转移方程是否能够想出来,转移方程想出来了,代码实现就比较简单,基本这道题就可以写对。所以多看题解,到考试的时候,这道题你见过,既使之前没有做过,但是知道解法,思考方向是正确的,这就节省了相当多的时间。

思维不要僵化,学会不会做的题要想办法用各种技巧得分,这种方法俗称骗分。比如暴力枚举、打表,如果担心超时,使用卡时技术啊等等。这都是比赛规则允许的,为什么不用呢?我之前见过一个学生,明明有些题的算法他从来没有学过,但他总是可以用各种奇奇怪怪的方法拿分。又比如一些题目,正解想不出来,但可以通过找规律,大胆猜测,过一些数据点的。

重视使用对拍等方法提高做题的正确率,即使是会做的题,也一定要提防出题人设置的陷阱,导致基本都做出来题目了,但因为细节的原因一分拿不到,对拍是一种非常有效的提高正确率的技巧,稍后我会一一介绍。

当然,做到以前几点,首先要做到的是能够熟练写出模板题,网上有很多的模板题汇总,找来一道一道地写,这时就有一个问题,这些模板需要背吗?背是需要的,但不是死记硬背,你就把它想象成数学公式,你说数学公式只是背熟了就能做对题目?显然不可能,必须要在理解的基础上背,理解了,不用背现场略微想一想,调一调,也能写出来。

还有的同学呢,是拼命的刷题,或者拼命的看书,这种方式并不是特别的好,更好的方法的是刷题与看书交替进行,每个算法要学透,否则学了一堆算法,每个算法都学的一知半解,考试的时候根本写不出来,还不如学一个算法就把一个算法弄透。《编程竞赛宝典》里的题目呢,都是经过很多年的反复筛选的,比如书中某个知识点,我会考虑到它是不是重点,是不是很难,如果要完全掌握需要几道训练题,它还有没有什么变型?这样的安排,保证了学习的效率和进度,否则刷一堆水题,看起来通过的题量很多,但都没有什么质量,还浪费了大量的时间。

最好有一个讨论研究的氛围,一个人闷着头学效率是很低的,经过讨论得出的结论,比自己闷着学得出的结论,更容易记住。我做为老师,我自己是深有体会的,比如前一天备课准备的新题目新算法,备课时是看懂了但其实并不是很透彻,但是第二天拿到课堂上讲给他们听,并且让他们讨论时,忽然又领悟不少,然后知识点记得更清晰了。

— 05 —

三个拿分技巧

避免易犯错误

竞赛中常见的错误有:忘了加读写文件语句,程序无法编译成功,忘了写return 0,文件名、文件夹等错误,个人信息错误等。

这种易犯错误,有的选手训练一下就可以避免,但有些选手特别难纠正,我遇到的某些选手,我觉得可以这么试一下,把这些注意事项在考试的时候,以背景图的方式放在桌面上,时时提醒自己。

考试结束前十分钟,一定要停止写代码,逐项检查是不是犯了这些错误,有的学生比赛没经验,想的还有几分钟,我赶紧再写两行代码,也许就可以把这道题做对,我告诉大家,想象是美好的,现实是残酷的,这么做的后果,基本就是题仍然没做对,而且因为匆忙,忘写读写文件了,忘建文件夹了之类的小错误导致更多的失分。

实际上,大家可以看到《编程竞赛宝典》一书中,有些题目的文件名比较长,而且大小写混写,这么做的目的就是考察你是不是因为粗心把文件名写错了。

制作测试数据

题目写完后,并不是通过测试样例就可以的。

首先,出题者往往会在测试样例上做文章,导致选手被测试数据误导。比如某些题目是需要排序后才能进行处理的,但是输入的测试数据故意给个已经排好序的数据,选手可能就以为所有的数据都是已经排好序的。

其次,为了更好地区分不同层次的选手,命题人会考虑各种不同情况,精心的生成每一组数据,而不是随机生成或全是极限数据,否则测试数据组数的增加就没有了意义。除了增加测试数据的组数,多个小问部分分、优劣程度部分分、超时程度部分分都是增强区分度的有效方式。

所以为了验证我们的程序正确性,需要自制一些测试数据。

在《编程竞赛宝典》一书的3.2节,介绍了怎样制作测试数据。以一个简单的高精度加法来说,首先要考虑一些特殊数据是不是可以通过。再考虑极限数据行不行,最后,才考虑随机数据。

之前有学生自创了一些题目,有一道题他生成了五十组测试数据,但这些数据全是随机生成的,这些随机生成的数据,其实做一百组,两百组,基本都是同一类型的,没什么区分意义,所以我随手做了几个非常简单的数据,一下就卡了他的代码。

对拍

对拍是用朴素但费时的例如枚举、搜索等方法写一个测试代码,和准备要正式上交的代码输入同样的随机数据,以检测输出结果是不是一样的技术,这种方法可以有效地避免因粗心大意而导致的失分。

— 06 —

心态调整和考试技巧

“考试成绩发挥好不好,就看其心理素质好不好。”这种说法虽有失偏颇,但也不无道理。考试中的心态居首要位置,学习策略、技巧和知识基础紧随其后。

有的考生自我感觉不紧张,但其实他的内心是紧张的,只不过这种紧张被他的潜意识隐藏起来了,只有直面紧张,承认自己的紧张,心态才会慢慢平和。另一种是考前盲目自信,对考试的困难和复杂性估计不足,相信能轻易取得成绩,人求胜欲最强的时候,恰是最不冷静的时候。

韩国棋手李昌镐被人们称为“石佛”。为什么呢,因为他下棋时,无论输赢,都是面无表情,曾经有记者拍下他下棋的整个过程,发现自始自终,照片上的他几乎没有一点变化,我很推崇这种状态。我也经常告诉我的学生,拿奖了,你不必太开心,因为你付出了这么多,拿奖是必然的,不是天上掉陷阱,这是你应得的,有什么值得这么兴奋呢?没拿奖,你也不要太沮丧,因为你下的功夫不够,细节做不到位,找到自己的薄弱点,改正下,下次再来。就算学了很多年,什么奖也没拿到,但起码你从编程中悟到了很多东西吧,这些东西也是你终身的财富。

学会心理暗示。当你做不出某个题的时候,一定不要乱,心理默默的暗示自己,既然自己不会,别人也一定不会。做出了某个题,也不要盲目的高兴,因为这个题自己会做,别人做起来也会很容易的,所以不能骄傲。

设计算法,要尽量躲避第一印象思路,因为这个思路往往是错的,设计算法不仅要证明这个算法的正确性,还要从时间、空间等因素来考虑,千万不要很草率的结束这个过程,否则写到一半再来改正,浪费了时间不说,还影响了心情。

做题要稳和准,能拿到的分一定要拿到,有些题目先不要考虑用什么华里胡哨的算法直接拿满分,先考虑用朴素的算法把能拿到的分拿到。

韩国围棋选手李昌镐有句名言:“棋局如人生,下棋时,布局越华丽,就越容易遭到对手的攻击,生活中,少犯错误的人,要比华而不实的人更容易成功。”竞赛也是如此,每次比赛完分析题目,都会发现如果当时沉着冷静地应付考题,只用朴素的算法把能拿到的分都拿到,确保不犯一点错误,基本上就可以拿到一等奖。

利用5 分钟的时间写出程序的框架,第一步该干什么,第二步又该干什么,一步一步的写出来,并且写出关键的伪代码,这样在编程时就会条理性清晰,降低出错的几率。另外适当的注释语句,也有利于理清思绪。

学会适当的休息,不要长时间陷入一件事情不能自拔。当你编程序长时间地陷入了一个死角没有突破的时候,你可以考虑举手告诉老师你需要去一趟卫生间,去外面溜达一圈,看看风景,这样就可以换一个心情,换一个思维。在你休息完回来时,也许你就会突然发现有了思路。

张新华

毕业于浙江大学和厦门大学。中学高级教师,信息学金牌教练。长期从事中小学信息学竞赛辅导工作,无论是在信息学还是在教学上都有着数十年的深厚积淀,获得过2009年普通高中信息技术现场优质课比赛全国一等奖获得者。培养的学生更多次获得全国青少年信息学奥林匹克联赛国家一等奖及亚洲与太平洋地区信息学奥林匹克竞赛奖牌。

开发了三维图形化C++ 编程工具Dev-C++ 智能开发平台和Python 可视化界面设计软件Visual Python。

好书推荐

✨ NO.1 ✨

编程竞赛宝典 C++语言和算法入门

点击上图,即可购买《编程竞赛宝典 C++语言和算法入门》!

内容简介:

编程类竞赛活动受各级各类学校重视,受青少年学生欢迎。本书以Dev-C++为C++语言的开发环境,首先带领读者入门C++语言,然后循序渐进、由浅入深地讲解C++语言的基本结构、数组、函数、指针、结构体、位运算等知识,并编排了竞赛模拟、阶段检测等内容,使读者能及时评估自己的学习效果。本书在介绍C++语言的同时,更加侧重于计算思维的培养,通过“一题多解”及“数学求解”等方法,拓展读者对题目的本质和内涵的思考与理解。本书还配备了参考程序、习题解答、测试数据、讲解视频等资源供读者参考学习。

怎样用电脑算平均分

5月12日,记者从国家海洋环境预报中心(以下简称预报中心)获悉,预报中心自主研发的全球风暴潮、海啸监测预警系统经过历时两年的试运行,今天正式投入业务化运行。

这拓展了我国风暴潮、海啸预警服务领域,可进一步为我驻外使领馆工作人员、涉外企业及国际合作组织等提供专业的风暴潮、海啸预警服务。相关产品即日起可通过中国海洋预报网查询访问。

全球风暴潮、海啸监测预警系统具备三方面特点:一是自主化,主要技术均是自主研发;二是低碳化,均支持GPU并行加速技术,相对传统超级计算机计算方式,完成同等规模计算耗电节省90%,真正实现高效低碳;三是智能化和高集成度,可实现自动运行、一键发布。

风暴潮、海啸灾害是世界上重要的海洋灾害,西北太平洋沿岸、大西洋沿岸、北印度洋沿岸以及大洋洲沿岸均遭受过严重的风暴潮灾害袭击,而海啸灾害仅在二十一世纪以来已导致全球超过25万人死亡失踪。

我国是当今第一贸易大国,而大宗商品运输90%依赖海运,随着“一带一路”倡议、全球发展倡议相关战略深入推进,我国企业走出去步伐不断加大,海外投资项目不断增加,提升全球海洋环境安全保障能力已刻不容缓。

预报中心以服务国家战略需求为己任,在海温、海浪、海流、海面风、海冰、搜救溢油等业务率先实现全球覆盖的基础上,全球风暴潮、海啸监测预警系统正式投入业务化运行,标志着我国海洋预报实现了“全球监测、全球预报、全球服务”。

预报中心自主研发了基于六边形非结构网格的高分辨风暴潮数值预报系统,该系统在全球近岸区域的网格分辨率为3km左右。预报中心还自主开发了全球风暴潮监测系统,可实时获取全球65个沿海国家300多个站点的潮位观测信息,实现了对全球风暴潮的实时监测。

全球风暴潮监测预警系统自开发完成以来,针对2020“安攀”、2022“南玛都”等多次风暴潮过程发布了预报产品,例如“安攀”风暴潮预报,国家海洋环境预报中心提前48小时预报最大风暴潮将达到500cm。据印度气象局的报告,“安攀”最大风暴潮为4.6m,预报与实测吻合较好。

预报中心同样基于完全自主技术建设的全球海啸监测预警系统,已经具备定量响应全球海啸的预警能力。该系统通过融合自然资源部自建宽频地震台、中国地震局部分沿海地震台站以及全球其他国家共享的实时数据,建立了全球海底强震实时监测和速报系统,海底强震震源基本参数分析确定平均监测延迟小于4分钟;针对海底强震过程,可以利用海啸情景数据库和自主海啸数值模型对海啸到时和波幅进行快速预报,可在一分钟之内完成定量海啸预警分析,并判断全球重点城市岸段的海啸危险性。利用中国沿海验潮站和全球共享的浮标和水位站,预警中心可在震后30-40分钟确认和监测海啸事件的影响。上述海啸预警标准业务流程可由值班员操作自主研发的智能海啸信息处理系统(STIPS)完成。

来源: 澎湃新闻


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 节目主持人开场白台词(主持人 主持稿)

下一篇: 柴油(说一说柴油的简介)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号