NOIP学习方法, USACO资料整理收集

刚入坑的oier容易不知道玩什么,怎么玩,(尤其是单机OI的弱校/kel)…
学一些基础的算法之后,从最近10年的联赛题开始做,不会就学,是一个很好的做法(记得跳过所有和高精度有关的东西)….不过对于我这种智商不足的选手而言可能比较麻烦….
线上的教学,我可以说(免费获取的)效果都不好,我曾经初三/高一的时候尝试在学堂在线上面跟着数据结构mooc学习,去coursera上面找大名鼎鼎的algorithms的教学视频学习,但是它们的节奏,与内容结构完全不适合OI初学者,有了一定的水平之后听课比起看书就是浪费时间….可以试试B站上面找UESTC算法讲堂,但是没有特别基础的教学,并不是手把手拉人入坑的,而是帮助对文字理解能力不足的选手克服学习障碍的.

传统路线吧,买一发LRJ的紫色+蓝白书,买一发LYD的《qwq指南》…然后开始学.LRJ的紫色书(叫算法竞赛入门经典)还是很系统的,难度也挺友好的,花上半年时间应该是刷完没问题吧QAQ,没必要做完上面的所有题目,但是例题是一定都要写的.LYD那本书的话更贴近现在真实的NOIp,推荐所有例题都写.书中对于一些刚入坑容易产生恐惧感的数据结构/网络流建模有些基础的介绍,让人知道现在OI是个人就得会hld,就得会dinic,就是得学,而且只是有个初步了解,写点经典应用完全不难….

如果没有指引的话搞竞赛很容易跑偏的,尤其是在没有升学压力的情况下。入门就用lrj的《算法竞赛入门经典》,非常简明易懂…配合USACO多刷题别只看书…C语言的话看到指针就可以开始做题了…其实很多时候都能用数组解决…别去OJ上刷水题.

联赛一等奖是比较简单的——至少和前几年比起来,暴力就足以帮你轻松拿到一等。学习了基础语法后,其实就可以去学习需要掌握的基础算法,然后做题就行了。学习新算法的一种途径是看书,比如现在主流推荐的《算法竞赛入门经典》、《挑战程序设计竞赛》,任选一个就好;答主曾经看过一本叫做《啊哈算法》,虽然讲的内容较浅不太适合应试,但是内容很有趣,如果当做算法入门来构建思维也是不错的。当然,更多的内容还是要靠网上博客,包含对于各种算法的理解,还有海量的题解。

剩下的只有做题了,慢慢积累不同的思路、实现,培养一种思考题目的方式。许多OJ上可以做题,如果目标是一等奖的话,有luogu、codevs、vijos等等,这些上面都有历年联赛原题;美国usaco的题目质量也很高,难度恰好从普及组覆盖至比省选低,当然国内许多OJ已经有翻译了;国外的codeforces,topcoder,atcoder,codechef等比赛平台也有很多好题,可以做上面较简单的题;如果有精力在奇怪的时间打比赛的话,可以试试这些比赛的div2。

许多题目都在网上有许多题解,对于题解不同的人有不同的用法,对于不会的题直接看题解学习也不失为一种学习方式,当然还是建议先多思考。

慢慢刷题的话,按照难度顺序,一步一步来吧。

如果是没有竞赛环境的话,那么可以考虑加入一些群,比如uoj,loj群,虽然学术风气日下毒瘤风气日增,而且对新人略不友好,但是相信题主能在这些地方得到一些答疑和指导,更重要的是能看到一个全新的世界。

信息学是一个高度依赖自学的竞赛,而且一等奖的要求确实不算太高。题主有兴趣的话,就已经具备了一个很重要的条件了

真题库

https://ac.nowcoder.com/acm/archive

资料网站 https://oi-wiki.org/

在线课堂 https://www.eeo.cn/cn/

B站视频文档(1~10节)信息学视频教程直接在B站搜索:BV1if4y1v7oD链接:http://note.youdao.com/noteshare?id=7e5fd293016514f4b1458a5e34758c66
Python课程32节精美PPT链接: https://pan.baidu.com/s/12ipKSIjnlbR9KKRMRSRDng 提取码: e59k
33节scratch精美课程PPT及scratch源码
链接:https://pan.baidu.com/s/10txoxFiw1X-d3wbQjmIQag 
提取码:w0j0
NOIP从入门到精通(NOIP看这一个教程就够了)链接:https://pan.baidu.com/s/1zbaunzRRhcpGCWIQ4qa-aQ 提取码:iws2
NOIP历年真题及答案(2006~2019)链接:https://pan.baidu.com/s/1DfOBWybqpBvX8YkMrQLGRw提取码:bywv
编辑器
pycharm汉化版链接:https://pan.baidu.com/s/1h2jOZw5ch3Jpt8izhZCBRQ 提取码:6yqd
mu1.1中文版链接:https://pan.baidu.com/s/1oeiBLjuDkJ2WsEgVN_LTSg 提取码:ntb2
NOILinux系统安装(含说明文档)
链接:https://pan.baidu.com/s/1alfX1PfS-jtjc41tcNtERg 提取码:hnnw
DEV-CPP链接:https://pan.baidu.com/s/1VtZz40ShX7Opq87y2DD9Bg 提取码:8j3h

习资源
B站视频文档(1~10节)信息学视频教程直接在B站搜索:BV1if4y1v7oD链接:http://note.youdao.com/noteshare?id=7e5fd293016514f4b1458a5e34758c66
Python课程32节精美PPT链接: https://pan.baidu.com/s/12ipKSIjnlbR9KKRMRSRDng 提取码: e59k
33节scratch精美课程PPT及scratch源码
链接:https://pan.baidu.com/s/10txoxFiw1X-d3wbQjmIQag 
提取码:w0j0
NOIP从入门到精通(NOIP看这一个教程就够了)链接:https://pan.baidu.com/s/1zbaunzRRhcpGCWIQ4qa-aQ 提取码:iws2
NOIP历年真题及答案(2006~2019)链接:https://pan.baidu.com/s/1DfOBWybqpBvX8YkMrQLGRw提取码:bywv
编辑器
pycharm汉化版链接:https://pan.baidu.com/s/1h2jOZw5ch3Jpt8izhZCBRQ 提取码:6yqd
mu1.1中文版链接:https://pan.baidu.com/s/1oeiBLjuDkJ2WsEgVN_LTSg 提取码:ntb2
NOILinux系统安装(含说明文档)
链接:https://pan.baidu.com/s/1alfX1PfS-jtjc41tcNtERg 提取码:hnnw
DEV-CPP链接:https://pan.baidu.com/s/1VtZz40ShX7Opq87y2DD9Bg 提取码:8j3h

美国高中计算机奥林匹克(USACO)介绍

现在,计算机编程似乎已经成为大家生活中必备的技能了。甚至很多小学生从一年级开始就已经会用Python编游戏了。很多同学在选专业的时候也都会考虑double一个计算机来拓展以后就业的机会。因此,这里就来给大家介绍一下美国最有名的计算机竞赛吧!

USACO

USACO(USA Computing Olympiad)

是美国最具认可度和参与度最高的计算机竞赛,用于选拔美国参加全球信息奥林匹克竞赛(IOI)的国家队。全球的参赛者都可以通过参加网上的三场竞赛,晋级铜奖、银奖、金奖和白金奖四个等级。(感觉有点像打王者哈哈哈)虽然,最后只有美国公民或者绿卡持有者才有机会参加训练营或者最表美国队参加IOI,但是你在USACO的等级可以充分证明你的编程实力,而且也是很红的训练机会哦!

2019-2020 比赛时间

Dec 13-16: First Contest 第一轮竞赛

Jan 17-20: Second Contest 第二轮竞赛

Feb 21-24: Third Contest 第三轮竞赛

Mar 27-30: US Open 美国总决赛

May 21-30: Training Camp 训练营 16-24人

Jul 19-26: IOI 2020 in Singapore 全球信息奥林匹克竞赛(新加坡) 4人

任何人都可以参加USACO的前三场比赛和美国总决赛并完成晋级/获得奖项,但是只有美国公民或者绿卡持有者可以参加训练营和最终代表美国队参加IOI。

时。

报名方法

随时可以注册账号报名,在比赛时间开始时登陆账号开始比赛即可。

官网链接:http://www.usaco.org/index.php

比赛形式

USACO的比赛时间和形式比较随性,参赛者只要在规定的时间里登陆账号,下载题目,并在3-4小时内提交答案就可以。虽然比赛并没有任何形式的监考和限制,依旧希望参赛的同学们能自觉地遵守考试规则:)

一场比赛通常由3-4个问题,你可以使用C,C++,Pascal,Java,Python中的任意一种语言解题。评分方式是网站自动判定你的程序在规定的时间内所能正确解答的Test Case个数,所以有些时候需要使用较为巧妙的算法。

当你提交你的程序之后,每个Test Case都会获得反馈,绿色代表成功,红色代表失败。其中失败又分为很多种。X 代表答案错误, T 代表超时, ! 代表运行错误或者超出内存限制, E 代表输出文件为空, M 代表没有输出文件.

详细规则请见:

http://www.usaco.org/index.php?page=instructions

USACO等级

青铜

参赛资格:一进入USACO注册账号即为铜级。

难度等级:铜级考试只要基本编程常识,会至少一种编程语言。铜级的编程限制时间还是够用的,大部分初次参赛的选手都能在第一次考试中晋级白银级。

白银

参赛资格:通过青铜级比赛的选手。

难度等级:需要基本的问题解决能力和简单算法(例如:贪心算法,递归搜索等),还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。

黄金

参赛资格:通过白银级比赛的选手。

难度等级:需要有一定的算法基础,理解一些抽象的方法(例:最短路径,动态规划),并且对数据结构有比较深的了解。

白金

参赛资格:通过黄金级比赛的选手。

难度等级:需要有很高的编程基础,对算法有深入的了解。部分比赛问题最后的优化方案,可能不只一个,得出的答案也不只一个。

每次比赛,选手都可以向更高的级别发起挑战。在比赛窗口开放的三天时间内,选手可以选择任意时间开始比赛。如果拿到了满分,可以在比赛窗口关闭之前就晋级到下一级。升级了之后,只要比赛窗口还没有关闭,可以继续向下一个等级进发。没能拿到满分的同学需要等到比赛窗口关闭,等待晋级分数线,才能决定是否晋级。