普通学生如何面对ACM,算法金奖得主带你领略
Posted 米莱虾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普通学生如何面对ACM,算法金奖得主带你领略相关的知识,希望对你有一定的参考价值。
首先要给大家介绍一下ACM-ICPC的相关背景和信息:
国际大学生程序设计竞赛ACM-ICPC实际上叫ICPC,它的举办方是美国计算机协会ACM,近几年变成了某Jb协会(不是我开荒枪,它的简称缩写就是这个哦),国内举办的就是中国大学生程序设计竞赛CCPC,下属到省级的赛事就是(比如江苏,就叫JSCPC)。
比赛场地一般长这样:看了是不是很热血!
奖牌一般长这样:
某些强省的省赛的含金量是很高的【但是相对区域赛来说,知名度有所不及】,比如江苏和浙江,我们教练就说过,拿到JSCPC的金奖,ICPC都不用去打了(当然是考虑到队员的上限,也是为了突出其含金量才如此说的,毕竟只是双非中最弱的那一批,不过最厉害的那一队也拿过19年南昌区域赛的银牌前列)。
ACM-ICPC区域赛(全国角逐),一般是由申请获得举办比赛资格的强校承办(比如:西北工业大学长安校区、东北大学、北京大学、中国矿业大学...),全国各地的学校通过网络预选赛,按一定比例角逐参赛资格,网络赛跻身前列才有机会参加区域赛,并且最终能否参加还要看自身所处的队伍在校队的水平,由教练考量决定是否同意前往【在下并不赞同将其定义为省赛,当然我校是明智的——I类竞赛榜第四,前三懂得都懂,形势政策使然】。
局外人不懂ICPC,以为区域赛reginal是省赛,甚至不把中国赛区总决赛EC-Final当国赛,而把全球总决赛World-Final当国赛(这样扯真的没必要了,就国内某些看似很妞笔的比赛而言,信息学奥赛的后身之wf怎么说都是鹤立鸡群的,鲜有能与之并驾齐驱者(有也是其他国际大赛)。算法竞赛考察的纯粹是参赛者的自身实力或者说是参赛学生队伍的实力汇聚,该是什么样基本就是哪样,评审环节机测,不会因为某某赞助或者因为导师是某某大牛而影响成绩)。
此外,就拿区域赛reginal而言,想要拿奖也不是什么容易的事,普通一二本苦练三四年,最后没有拿到奖牌的也不少【如果没有浓厚的兴趣、坚定地信念、坚毅的毅力和相应的竞赛环境作为支撑,劝不要轻易入口坑】。比赛有金银铜奖,按照一定比例分发,最多总数不超过210,但实际获奖率不到30%,因为疫情,都是现场参赛,就出现了六七八百支队伍抢210个牌子的情况,并且强校强队蜂拥而至,获奖几率更加渺茫。
其次,我们来了解一下竞赛的主流语言和算法题型:
算法题一般都是C++写,除了高精度和大整数用Java比较方便,过往少数的初中算法竞赛生一般开始的时候用python。C++比较重要的特性就是STL等操作。
基础的算法包括:排序算法、贪心算法、枚举、模拟、递归、分治、二分、前缀和&差分、构造、回溯等。
什么算法都不需要的(比如只用for循环)做法一般称作朴素做法/暴力,但也因此会把考点放在思维换算(比如时间单位等细节 或 实际物理/生活场景的抽象上)。蓝桥杯大题第一题一般就是这种,只要针对性练习一些就可以。
上升难度的算法有:
搜索(深搜dfs/广搜bfs,其实属于图论)
动态规划dp(8大背包、一二三维dp、状压dp、树形dp)
前缀和/差分(一维/二维)
数论(快速幂、阶乘、逆元、费马定理、中国剩余定理、组合数学、概率、线代、高斯定理、卢卡斯定理、第二类斯特林数...)
博弈论(尼姆博奕Nimm、巴什博奕Bash、威佐夫博弈Wythoff、单双人sg游戏基础四大类+拓展Nim-斐波那契。博弈论说简单不简单,说难不难,一般有思路了就用那几种写法去碰,说不定就是对的)
图论(最短路、拓扑排序、树上问题、各种图、最小生成树、k短路...)
计算几何(遇到就是凸包什么的,ACM金银牌题,不用管)
字符串算法(字符串匹配、哈希、后缀数组S、字典树,像AC自动机这种可能就是ACM银牌题了)
还有一些题比如网络流、权值线段K-D树不是很长考,但一般出了就是至少reginal银级的题目了
...
一般,蓝桥杯能否拿到省一主要就看动态规划(也就是dp,一般在大题第二题,会基础背包和简单的应用即可)和搜索大题(一般也不难,是模板题)是否拿分了,一般江苏C语言B组填空题错一道+两道大题满分+其他题用暴力骗骗分基本就是省一进国赛。
接着,我们再来了解一下ACM-ICPC的意义:
主要就是和就业(去互联网大厂技术岗)相关的了,在另一篇文章有所涉及,暂时不再赘述~
由于自身所处环境和实力有限,可能目光有所局限,所说只涉及普通疾苦大众,思想不成熟处望指正!
以上是关于普通学生如何面对ACM,算法金奖得主带你领略的主要内容,如果未能解决你的问题,请参考以下文章