编程竞赛
Awesome Competitive Programming
¶
精选的“竞争性编程”、“算法”和“数据结构”资源列表.
为了将人们与信息联系起来而创建,下面的列表包含了我在 11 年竞争激烈的编程生涯中收集的所有精彩资源的完整集合. 我希望你会发现它有用:)
What is competitive programming? - Quora
Contributing¶
请关注 https://github.com/lnishan/awesome-competitive-programming/blob/master/CONTRIBUTING.md 开始.
您也可以通过分享做出贡献!
与你的同学、你的朋友和所有人分享这份名单:)
> 通过将更多人连接到信息,
> 你,不是在帮我,而是在帮大家一个大忙!
> 真心希望更多人能从这份榜单中受益:)
List of Lists¶
> 很棒的精选列表,按主题分类.
☆ | 名称 | 说明 |
---|---|---|
★★★ | Good Blog Post Resources about Algorithm and Data Structures - Codeforces | 由 Codeforces 用户撰写的精彩教程博客文章集. 一些有趣的包括回文树、基于策略的数据结构等等. |
★★★ | All of the good tutorials found on codeforces - Codeforces | Codeforces 用户编写的另一个很好的教程博客文章集. |
★★★ | Data Structures and Algorithms - CodeChef Discuss | 一个非常完整的竞争性编程资源列表. 浏览器书签中的必备品. |
★★★ | How to prepare for ACM - ICPC? - GeeksforGeeks | ACM-ICPC 准备工作的详细演练. |
Syllabuses¶
> 找出您需要学习的主题.
☆ | 名称 | 说明 |
---|---|---|
★★★ | IOI Syllabus | 将测试 IOI 参赛者的详细教学大纲. 这与 ACM-ICPC 还是有些相关的. |
★★★ | How to prepare for ACM - ICPC? - GeeksforGeeks | ACM-ICPC 准备工作的详细演练. |
★★☆ | Programming Camp Syllabus | 具有练习问题的竞争性编程中的重要主题列表. |
★★☆ | Juniors Training Sheet, 经过 Mostafa Saad Ibrahim | 约 800 个新手有序问题直到 Div2-D |
Tutorial Websites¶
> 很棒的网站,提供很棒的教程.
☆ | 名称 | 说明 |
---|---|---|
★★★ | Topcoder Data Science Tutorials | 由受人尊敬的 Topcoder 成员编写的教程列表. 很多顶级程序员都是从这里开始学习数据科学的. |
★★★ | E-Maxx (Russian), (English) | 一个在俄语竞争性编程社区中广泛使用和引用的教程网站. 原站的大部分文章都已翻译成英文,谷歌翻译对剩下的文章没问题. |
★★☆ | Algorithms - GeeksforGeeks | 一个网站,其中包含大量关于不同主题的精美文章. 它是算法课程的一个很好的免费资源. |
★★☆ | PEGWiki | 一个网站,在许多主题上都有令人惊叹的类似 wiki 的深入文章. 在我看来,它比维基百科上的要好得多. |
★★☆ | Notes - HackerEarth | 一个很棒的教程众包平台. 另请访问 Code Monk. |
★★☆ | USA Computing Olympiad (USACO) | 其网站上包含几个培训页面,旨在培养一个人按照自己的进度对困难和多样的算法问题进行编程解决方案的技能. |
★★☆ | basecs | 一个博客,其中包含有关基本算法和数据结构的深入图解教程. |
★★☆ | Competitive Programming - Commonlounge | 针对初学者和中级概念的简短视频教程. 高级教程选自各种 CP 博客上最好的教程. |
★☆☆ | OLYMPIADS IN INFORMATICS | 一本国际期刊,专注于在信息学教学领域工作的专业人士的研究和实践,以帮助有才华的学生. |
★☆☆ | algolist (Russian) | 一个致力于各种算法的俄罗斯网站. 该网站上列出的一些主题似乎很有趣. |
★★☆ | 演算法筆記 (Algorithm Notes) (Chinese) | 台湾竞争性编程社区中最受欢迎的教程网站之一. 该网站的维护者在研究算法上付出了巨大的努力. |
★★☆ | 国家集训队论文 1999-2015 (Papers from Chinese IOI training camps) (Chinese) | 来自中国IOI训练营的论文. 有趣的是,人们可以分辨出不同的地区强调不同的事物. |
★★★ | Mini-Editorials, 经过 Mostafa Saad Ibrahim 实习生 | 许多问题的迷你社论解决方案,包括 UVA/SPOJ/IOI/Olympiad 问题 |
★★☆ | OI Wiki (Competitive Programming) (Chinese) | OI Wiki致力于成为一个免费开放的持续更新的编程竞赛(competitive programming)知识整合站点. 这个 wiki 是竞争性程序员试图学习一些东西的一种伴侣或指南 |
Open Courses¶
> 考虑通过这些很棒的课程开始您的竞争性编程之旅!
☆ | 名称 | 说明 |
---|---|---|
★★☆ | Code Monk , 由 HackerEarth | 关于竞争性编程中基本主题的精彩分步教程. |
★★★ | Stanford CS 97SI: Introduction to Competitive Programming Contests | 提供全面的讲座幻灯片和练习题的简短列表. |
★★☆ | How to Win Coding Competitions: Secrets of Champions | ITMO 大学关于 edX 竞争编码的课程. |
★★☆ | Codechef's Indian Programming Camp | 视频讲座来自 Codechef's Indian Programming Camp 2016 . 由 Sergey Kulik、Kevin Charles Atienza 和 Anudeep Nekkanti 等顶尖程序员提供的讲座. 主要侧重于通过将这些概念应用于实际的竞争问题来探索这些概念. |
★★☆ | Reykjavik T-414-ÁFLV: A Competitive Programming Course | 很棒的课程由 Bjarki Ágúst Guðmundsson (SuprDewd) . 这些讲座以简洁的幻灯片和一系列需要练习的问题为特色. |
★★☆ | NCTU DCP4631: Problem Solving and Programming Techniques | 关于基本主题的课程,具有良好的讲座幻灯片. |
★☆☆ | Materials (English) 从 Arabic Competitive Programming YouTube Channel | Mostafa Saad Ibrahim 的一些材料(幻灯片和源代码)涵盖了广泛的算法主题. |
Open Courses for Algorithms and Data Structures¶
☆ | 名称 | 说明 |
---|---|---|
★★★ | prakhar1989/awesome-courses#algorithms | 由知名机构(麻省理工学院、斯坦福大学、加州大学伯克利分校等)提供的精彩开放课程列表. |
★★★ | MIT SMA 5503: Introduction to Algorithms | 该课程由 Charles Leiserson 教授(Introduction to Algorithms 的合著者之一)和 Erik Demaine 教授(一位在数据科学领域取得显着突破的杰出教授)主讲,提供了丰富的材料,并附有直观而全面的分析. |
★★☆ | UIUC Algorithm Course | 涵盖范围广泛的算法主题的讲义、家庭作业、考试和讨论题 |
Books¶
> 竞争性编程的推荐书籍列表.
☆ | 名称 | 说明 |
---|---|---|
★★☆ | Competitive Programming , 史蒂文和费利克斯哈利姆 | 本书包含一系列相关的数据结构、算法和编程技巧. 这是一本很受欢迎的书. ... 第一版是免费 download (pdf). |
★★☆ | Programming Challenges: The Programming Contest Training Manual , 史蒂文·斯基纳 (Steven Skiena) 和米格尔·雷维拉 (Miguel Revilla) | 本书包括 100 多个编程挑战,以及解决这些挑战所需的理论和关键概念. 问题按主题组织,并辅以完整的教程材料. |
★★☆ | Competitive Programmer's Handbook , 由 Antti Laaksonen | 为有抱负的 IOI 和 ICPC 参赛者介绍竞争性编程. 免费 download (pdf). |
★★☆ | Algorithmic Thinking: A Problem-Based Introduction , 丹尼尔·津加罗 | 一本使用竞争性编程问题(IOI、USACO、CCC/CCO 等)教授数据结构和算法的书. |
★★☆ | Computational Geometry: Algorithms and Applications , 马克·德伯格、Otfried Cheong、Marc van Kreveld、Mark Overmars | 这是一本写得很好的书,涵盖了广泛的计算几何问题. |
★☆☆ | The Hitchhiker’s Guide to the Programming Contests , 通过 Nite Nimajneb | 这本书是免费 download (pdf) . 本书涵盖了与竞争性编程相关的各种主题. |
★★★ | プログラミングコンテストチャレンジブック (Japanese), by 秋叶拓哉, 岩田阳一, 北川宜稔 | An absolutely phenomenal book. The contents, organized in a very coherent manner, are nothing short of amazing. ... 培养与锻炼程式设计的逻辑脑:世界级程式设计大赛的知识、心得与解题分享(Chinese Traditional) |
★★☆ | 算法竞赛入门经典 (Chinese), by 刘汝佳 | The Art of Algorithms and Programming Contests (English), 打下好基础:程式设计与演算法竞赛入门经典(Chinese Traditional) |
★★☆ | 算法竞赛入门经典——训练指南 (Chinese), by 刘汝佳, 陈锋 | 提升程式设计的解题思考力─国际演算法程式设计竞赛训练指南(Chinese Traditional) |
★★★ | 算法艺术与信息学竞赛 (Chinese) , by 刘汝佳, 黄亮 | 曾经的经典. 虽然年代久远,但以今天的标准来看,这本书的内容还是很难的. |
Books for Algorithms¶
☆ | 名称 | 说明 |
---|---|---|
★★★ | Introduction to Algorithms ,作者:Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein | 也称为 CLRS(取自姓名首字母),这本书通常被称为算法和数据结构的“圣经”. 它是大学算法课程最受欢迎的教科书之一. 这本书非常详细地涵盖了各种算法和数据结构. 写作更加严谨,对某些人来说可能很难. |
★★☆ | Algorithm Design , Jon Kleinberg 和 Éva Tardos | 本书围绕设计算法的技术展开. 它组织良好,用清晰易懂的语言编写. 每章都附有实际示例和有用的练习. 关于网络流量的章节受到了很多人的好评. ... 教科书随附的讲座幻灯片可在其 official website. |
★★☆ | The Algorithm Design Manual , 史蒂文·斯基纳 (Steven S. Skiena) | 这本书是用更具可读性的文字写成的. 有些人认为它比其他书籍更全面. 你也可以在其上找到一些很好的资源(包括作者自己的视频讲座) official website. |
★★★ | Algorithms , 罗伯特·塞奇威克 (Robert Sedgewick) 和凯文·韦恩 (Kevin Wayne) | 这本书分类整齐,配以详尽的解释和精彩的插图. 它在一些IOI训练营中用作教科书. |
Algorithms and Data Structures in Action , 由 Marcello La Rocca | 这本书提供了一种不同的算法方法,从更实用的角度平衡理论,每章一节重点介绍如何将算法应用于日常工作或竞争性编程中的实际用例; 它还融合了经典、高级和新算法. | |
★★★ | Algorithms , 杰夫埃里克森 | 根据 CC 4.0 许可的自行出版教科书的免费电子版. 这是一本写得很好的书,来自伊利诺伊大学理论计算机科学课程的讲义. 涵盖回溯、动态规划、贪婪的主要范例,特别是深度图. |
Books for Mathematics¶
☆ | 名称 | 说明 |
---|---|---|
★★☆ | Discrete Mathematics and Its Applications , 肯尼斯·罗森 (Kenneth H. Rosen) | 离散数学与竞争性编程密切相关. 本书提供了广泛主题的综合材料,包括:逻辑和证明、集合、函数、序列、矩阵、数论、递归、计数、概率、图形、树和布尔 Alegra 等等. |
★★☆ | Concrete Mathematics: A Foundation for Computer Science , 作者:罗纳德·L·格雷厄姆、唐纳德·E·高德纳、奥伦·帕塔什尼克 | 这本书提供了对离散数学的更深入的了解,更加强调与数字相关的主题. |
★★☆ | Linear Algebra and Its Applications , 作者:大卫·C·莱 (David C. Lay)、史蒂文·R·莱 (Steven R. Lay)、朱迪·麦克唐纳 (Judi J. McDonald) | 这本书在弥合物理系统(对于科学家和工程师)和抽象系统(对于数学家)之间的差距方面做得非常出色. |
★★☆ | Introduction to Probability , 查尔斯·M·格林斯特德 (Charles M. Grinstead) 和 J. Laurie Snell | 这是一本写得很好的介绍概率的书. ... 它是免费 download (pdf) (根据 GNU 自由文档许可证发布). |
★★☆ | How to Solve It: A New Aspect of Mathematical Method , 由 G. Polya | 曾经的经典. 在本书中,作者提供了一种创造性地解决问题的系统方法. |
★★☆ | Intermediate Counting & Probability , 大卫·帕特里克 | 前美国数学奥林匹克竞赛冠军大卫帕特里克的计数和概率主题,主题包括包含 - 排除,1-1对应,鸽子洞原理,建设性期望,斐波那契和加泰罗尼亚数,递归,条件概率,生成函数,图论等等.. |
Sites for Practice¶
> 良好的在线裁判系统/比赛平台练习.
☆ | 名称 | 说明 |
---|---|---|
★★★ | Codeforces | Codeforces 是目前最受欢迎的竞赛平台之一,如果不是的话. 目前由萨拉托夫州立大学维护,它以定期比赛和无数令人敬畏的原始问题为特色. 此外,每场比赛都提供直接有用的教程(通常)由作者自己编写. Codeforces 还拥有一个强大且引人入胜的社区. 总而言之,在这里确实会得到很大的学习和提高. |
★★★ | Topcoder | Topcoder 成立于 2001 年.历史悠久,在技术竞赛方面被认为是最负盛名的组织之一. 数百个 SRM 产生了丰富的问题集. 这里的问题通常比其他问题更具挑战性,因此 Topcoder 吸引了许多精英程序员. 一年一度的 Topcoder Open (TCO) 也是一个广受讨论的事件. |
★★★ | Google Code Jam | Google Code Jam 无疑是最受推崇的编程竞赛之一. 比赛包含独特的编程挑战,必须在固定时间内解决. 参赛者可以使用任何编程语言和开发环境来获得他们的解决方案. |
★★★ | AtCoder | AtCoder 是一个全新但现象级的竞赛平台,由一群评价很高的日本竞技程序员创建. |
★★☆ | CodeChef | CodeChef 是 Directi 的一项非营利性教育计划. 它是一个全球竞争性编程平台,拥有庞大的程序员社区,可帮助学生和专业人士测试和提高他们的编码技能. 其目标是为学生和专业软件开发人员提供一个实践、竞争和改进的平台. 除此之外,它还旨在在学生年轻时接触他们,并在印度灌输编程文化. |
★★★ | SPOJ | SPOJ 平台以在线裁判系统为中心. 它拥有由其问题设置者社区准备或从以前的编程竞赛中提取的数量惊人的问题,其中一些是练习的好问题(请参阅 Problem classifiers 部分). SPOJ 还允许高级用户根据自己的规则组织比赛. |
★★☆ | Timus | Timus Online Judge 是俄罗斯最大的自动判断系统编程问题档案库. 问题主要来自乌拉尔联邦大学、乌拉尔锦标赛、乌拉尔 ACM ICPC 分区域竞赛和彼得罗扎沃茨克训练营举办的比赛. |
★☆☆ | HDU | HDU是杭州电子科技大学维护的在线评委. 它是中国 IOI 场景中许多经典问题的发源地. |
★★☆ | Aizu Online Judge | 会津在线评委是由会津大学主办的竞赛平台和题库. 它有很多来自日本编程竞赛的大问题. |
★★☆ | UVa | 具有丰富历史的老派问题档案/在线法官. 这里有数以千计的问题,包括许多经典问题. 但是,强烈建议您练习 uHunt 在其“竞争性编程练习”部分之后. |
★★☆ | HackerRank | HackerRank 是一家专注于为消费者和企业提供竞争性编程挑战的公司. HackerRank 的编程挑战可以用多种编程语言解决,并且跨越多个计算机科学领域. |
★★☆ | POJ | POJ是北大维护的一个有很多大问题的在线裁判. 大多数中国有竞争力的程序员都是从这里开始他们的旅程的. 该平台确实过时,因此可能会出现神秘的编译和运行时问题. |
★★☆ | Project Euler | Project Euler 包含一组令人惊叹的数学问题. 它还拥有一个论坛,供人们讨论. |
★☆☆ | Hackerearth | HackerEarth 是一家位于印度班加罗尔的初创科技公司,提供招聘解决方案. |
★☆☆ | Caribbean Online Judge | COJ 由位于古巴的信息科学大学(UCI,西班牙语首字母缩写)主办. 具有 ACM ICPC 和 Progressive 竞赛风格,主要来自加勒比海和拉丁美洲的问题设置者,也有问题分类器和竞赛日历. |
★★☆ | CS Academy | CS Academy 是竞争激烈的编程领域的新成员,它是一个成长中的在线评委,每两周举办一次比赛. 它支持实时聊天、互动课程和集成的在线编辑器(确实有效). |
★★☆ | Russian Code Cup | 由 Mail.Ru Group 提供支持的编程竞赛. 比赛包括3场资格赛、1场淘汰赛和1场决赛. 每轮比赛都会给参赛者 4-8 个必须在固定时间内解决的问题. |
★★☆ | CodeFights | CodeFights 是一个用于竞争性编程练习和面试准备的网站. 它具有不同难度的日常挑战、问题档案和定期(每 15 分钟)的迷你锦标赛. 适合初学者. |
★★☆ | OmegaUp (Spanish) | OmegaUp is a community-based website for competitive programing training. It's also where Mexican Olympiad in Informatics (OMI : Olimpiada Mexicana de Informática) is hosted. |
Problem Classifiers¶
> 对编程问题进行分类的站点.
选择一个感兴趣的类别(例如 DP)并练习该主题的问题.
☆ | 名称 | 说明 |
---|---|---|
★★★ | A2 Online Judge | 混合 |
★★★ | Problem Classifier | SPOJ |
★★☆ | UVa Online Judge | CP书 |
★☆☆ | Codeforces Tags | CF (DP) |
★★☆ | HackerRank | 黑客排名 |
★★☆ | Juniors Training Sheet, 经过 Mostafa Saad Ibrahim | 约 800 个新手有序问题直到 Div2-D |
★★☆ | Lucky貓的 UVA(ACM)園地 (Chinese) | 紫外线 |
★★☆ | Topcoder problem archive | 类别和复杂程度的问题列表 |
Contest Calendars¶
> 即将举行的编程竞赛的日历.
(绝不会错过另一场比赛!)
☆ | 名称 | 说明 |
---|---|---|
★★★ | Programming Contest Calendar - HackerRank | 可导出 Google 日历 |
★★☆ | clist.by | 可用的API |
★★☆ | Coding Calendar (Android App) | |
★★☆ | Coder's Calendar: Android App, Chrome Extension, Firefox Add-on | |
★★★ | CodeHorizon: iOS App, Android App | |
★★★ | Competitive Programming Contests Calendar | 可导出 Google 日历 |
Sites for Questions¶
> 这些都是提问的好网站.
将您的代码粘贴到 ideone, pastebin 或其他网站以避免格式问题.
☆ | 名称 | 说明 |
---|---|---|
★★★ | Codeforces | 如需快速解答,Codeforces 绝对是询问任何与比赛相关的问题的首选之地. |
★★★ | Competitive Programming - Quora | 您通常会在 Quora 上获得更详尽的答案,但您的问题可能不会立即得到解答. |
★★☆ | Theoretical Computer Science Stack Exchange | 这个地方一般是给学术界的,所以不要在这里问比赛问题. |
Camps and Trainings¶
> 在线培训和营地.
☆ | 名称 | 说明 |
---|---|---|
★★★ | Online Free Problem-Solving Coaching, 经过 Mostafa Saad Ibrahim | 查看教练的详细信息和人们对其性质/质量的评论. |
Implementations¶
> 算法和数据结构实现.
☆ | 名称 | 说明 |
---|---|---|
★★★ | CodeLibrary , 通过 Andrey Naumenko (indy256) | CodeLibrary 包含大量 Java 和 C++ 算法和数据结构的实现. 你也可以访问他 GitHub Repository. |
★★★ | spaghetti-source/algorithm, by Takanori MAEHARA (@tmaehara) | High-quality implementations of many hard algorithms and data structures. |
★★★ | kth-competitive-programming/kactl ,由西蒙·林德霍尔姆 (simonlindholm) 等人撰写. | KTH 皇家理工学院精心组织、记录和测试的团队笔记本. 我见过的制作最精良的团队笔记本(竞赛图书馆)之一. |
★★☆ | jaehyunp/stanfordacm | 斯坦福的team notebook维护的很好,里面的代码质量很高. |
★★☆ | ngthanhtrung23/ACM_Notebook_new , 来自新加坡国立大学的 RR Watameda (I_love_Hoang_Yen, flashmt, nguyenhungtam) 团队 | RR Watameda 代表新加坡国立大学参加了 2016 年 ACM-ICPC 世界总决赛. 该笔记本中的项目非常标准且井井有条. |
★★☆ | bobogei81123/bcw_codebook , 来自国立台湾大学的团队 bcw0x1bd2 (darkhh, bobogei81123, step5) | bcw0x1bd2代表台湾大学参加2016年ACM-ICPC全球总决赛. 该笔记本包含高级数据结构和算法的强大实现. |
★☆☆ | foreverbell/acm-icpc-cheat-sheet , by foreverbell (foreverbell) | 具有一些高级数据结构和算法的笔记本,包括一些来自中国信息学领域的数据结构和算法. |
★☆☆ | igor's code archive , 通过 Igor Naverniouk (Abednego) |
Language Specifics¶
> 语言和其他杂项知识.
C/C++¶
☆ | 名称 | 说明 |
---|---|---|
★★☆ | Power up C++ with the Standard Template Library - Topcoder: Part 1, Part 2 | 基本 C++ STL 的入门教程. |
★★☆ | Yet again on C++ input/output - Codeforces | 了解有关 C++ I/O 优化的更多信息. |
★★☆ | C++ Tricks - Codeforces ... What are some cool C++ tricks to use in a programming contest? - Quora | 用于竞争性编程的大量 C++ 技巧. 请注意,有些应谨慎使用. |
★★★ | C++ STL: Policy based data structures - Codeforces: Part 1, Part 2 | 详细介绍GNU C++实现的额外数据结构. 官方文档可以查到 here. |
★☆☆ | C++11 FAQ (English, Chinese, Russian, Japanese, Korean) | 由 C++ 的创建者 Bjarne Stroustrup 收集和编写的有关 C++11 的常见问题解答列表. |
Java¶
☆ | 名称 | 说明 |
---|---|---|
★★☆ | How to read input in Java — tutorial - Codeforces | 了解如何更快地读取输入. 对于那些打算使用 Java 进行竞争性编程的人来说,这是一本必读的书 |
★★☆ | How to sort arrays in Java and avoid TLE - Codeforces | 关于如何避免遇到快速排序最坏情况的一些技巧 |
★★☆ | BigNum arithmetic in Java — Let's outperform BigInteger! - Codeforces | 一个基本但更快的自定义 BigInteger 类 |
★★☆ | EZ Collections, EZ Life (new Java library for contests) - Codeforces | 由 Alexey Dergunov (dalex) 编写的用于竞赛的 Java 库. ArrayList, ArrayDeque, Heap, Sort, HashSet, HashMap, TreeSet, TreeMap, TreeList 和 pair 类的实现 |
Miscellaneous¶
☆ | 名称 | 说明 |
---|---|---|
★★★ | Bit Twiddling Hacks | 一个巨大的位操作技巧汇编列表. |
★★★ | Comparing Floating Point Numbers, 2012 Edition - Random ASCII | 您需要了解的有关浮点数的所有信息. 必须特别阅读几何主题. |
★★☆ | Object-Oriented C Style Languages: C++, Objective-C, Java, C# - a side-by-side reference sheet | 常见语法的详细并排参考表. |
Tools¶
> 很棒的工具,让您的生活更轻松.
IDEs¶
☆ | 名称 | 平台 | 说明 |
---|---|---|---|
★★★ | Vim | CLI / 跨平台 | Vim 是高级程序员中最受欢迎的文本编辑器之一. 它允许仅通过击键就可以非常有效地完成文本编辑. Vim 还具有高度可配置性和可扩展性,并且与 shell(命令行)集成得非常好. Vim 的唯一挫折是它对初学者来说学习曲线很高. |
★★★ | Emacs | CLI / 跨平台 | Emacs 是另一种流行的文本编辑器(或者更准确地说是开发环境). 由于“Vim vs. Emacs”的流行,关于“Vim vs. Emacs”的争论不断被提起. 基本上,Emacs 不仅仅是一个文本编辑器. 它具有文件管理器、Web 浏览器、邮件客户端和新闻客户端等插件,允许用户直接在 Emacs 中执行这些任务. Emacs 因此“更重”,但可以说它对初学者来说具有相对容易的学习曲线. |
★★★ | Far Manager | 混合动力/窗户 | Far Manager 是 RU/CIS 竞争性编程社区中使用最广泛的编辑器. 它实际上是一个简单的文件管理器,但你可以安装 FarColorer - 在其上编程的语法高亮插件. 正确配置后,Far Manager 允许您在编写代码时非常有效地在文件之间导航. |
★★★ | Code::Blocks | GUI / 跨平台 | Code::Blocks 是 C/C++ 的首选 IDE. 它是一个成熟的、多功能的 IDE,具有许多强大的功能. 在编程竞赛中,Code::Blocks 通常与 Vim 一起提供. |
★★★ | IntelliJ IDEA | GUI / 跨平台 | IntelliJ IDEA 无疑是最好的 Java IDE 之一. 大多数以 Java 为主要语言的有竞争力的程序员都在使用它. 一定要去看看 CHelper ,一个为编程竞赛编写的非常方便的插件. |
★★☆ | Sublime Text | GUI / 跨平台 | Sublime Text 是一个非凡的文本编辑器. 它具有强大的创新功能,如多个插入符号、迷你地图和命令面板,吸引了一个强大而有吸引力的社区. Sublime Text 是高度可扩展的,所以一定要有 Package Control 安装和探索也许是最大的插件目录之一! |
★★☆ | Eclipse | GUI / 跨平台 | Eclipse 是另一个很好的 Java IDE. 它是 Intellij IDEA 的一个不错的替代品(按照今天的标准比 IDEA 差一点). 有时比赛出于某种原因只提供 Eclipse,因此这可能是尝试使用 Eclipse 的一个很好的动机. |
★★☆ | CLion | GUI / 跨平台 | CLion 由 JetBrains(开发 Intellij IDEA 的同一家公司)生产,是一款功能强大的 C++ IDE. 提供免费教育许可证,或者您可以试用他们 EAP (Early Access Program) 截至 2018 年 4 月,它仍然免费.您可能想要关闭其代码检查功能,因为它会导致相当大的延迟. |
★☆☆ | 其他 IDE | 混合 | Visual Studio is the IDE to use in case you want to code in C#. ... Both Atom 和 Visual Studio Code are built with Electron (written in JavaScript) 和 therefore somewhat resource-hogging. ... CodeLite is a newly rising IDE. Beware that the load-up 和 project-creation times can be extraordinary. |
Personal use¶
☆ | 名称 | 说明 |
---|---|---|
★★★ | VisuAlgo | 一个网站,包含大量用于算法和数据结构的可视化工具. |
★★★ | 一般实践助手:... CHelper (IntelliJ IDEA)(manual) ... caide (Visual Studio、CodeLite、独立命令行应用程序)... JHelper (AppCode,CLion) online-judge-tools (独立的 CLI 工具,它正在积极维护.) | 解析比赛、内联库代码和提供测试框架的好工具. 它们使您免于将宝贵的时间花费在切换窗口和来回复制粘贴上. |
★★☆ | Codeforces 解析器:... Codeforces Parser ... GoCF ... cfparser (emacs) cfparser (cli) | 这些工具解析 Codeforces 竞赛问题并帮助运行示例测试. |
★★★ | The On-Line Encyclopedia of Integer Sequences (OEIS) | 一本令人惊叹的百科全书,其中包含无数整数序列的数据库. 它还具有强大的搜索引擎. 有时,一个看似困难的组合问题可能等同于一个简单的或经过研究的整数序列. |
★★☆ | 语法荧光笔:... tohtml.com ... markup.su ... hilite.me | 使用漂亮的格式化代码片段创建幻灯片或团队笔记本非常方便. 只需复制突出显示的代码片段并将它们粘贴到您最喜欢的 WYSIWYG(所见即所得)编辑器中! |
★★☆ | 代码共享: ... Ideone.com ... Pastebin.com ... Ubuntu Pastebin | 这些工具生成用于代码共享的半永久页面. 非常有用,尤其是当您试图让其他人查看您的代码时. |
★★☆ | Ineffable | 用于本地评分的简单命令行评分器. |
★★☆ | uDebug | 一个平台,为 UVa Online Judge 上的问题的用户指定输入提供预期输出. 一些问题还提供了额外的调试用例. |
Contest Preparation¶
☆ | 名称 | 说明 |
---|---|---|
★★★ | polygon | polygon 为专业比赛准备提供了一个平台和一套丰富的工具. ... 一个例子: Validators with testlib.h - Codeforces |
★★☆ | Graph Editor | 创建和可视化图形的绝佳工具. |
★★☆ | tcframe | 用于生成竞争性编程问题的测试用例的 C++ 框架. |
★★★ | Virtual Judge (vjudge) | Virtual Judge (vjudge) 允许用户使用著名问题档案中的问题创建虚拟竞赛. |
★★☆ | BNU Online Judge | BNU Online Judge 还允许用户创建虚拟比赛. |
★★☆ | Kattis | Kattis 协助准备比赛(给他们发电子邮件寻求帮助). |
Community¶
> 认识神一样的竞技程序员!
从这些人那里学习有用的技巧、教程和见解 :)
Blogs¶
名称(句柄) | 博客名称 |
---|---|
Codeforces blogs | |
彼得·米特里切夫 (Petr) | Algorithms Weekly |
副岛诚 (rng_58) | rng_58's blog |
Bruce Merry (bmerry) | Entropy always increases |
Przemysław Dębiak (Psyho) | Psyho's blog |
Anudeep Nekkanti (anudeep2011) | Namespace Anudeep ;) |
vexorian(vexorian) | vexorian's blog |
Ashar Fuadi(fusar) | Fushar's blog |
黄以文 (dreamoon) | 小月的耍廢日誌 (Chinese) |
Shiang-Yun Yang (morris1028) | Morris' Blog (Chinese) |
Yuhao Du (TooDifficuIt, TooSimple, xudyh) | xudyh (Chinese) |
Youtube and Livestreams¶
名称(句柄) | 链接 |
---|---|
彼得·米特里切夫 (Petr) | Youtube |
Ravindrababu Ravula 的门讲座 | Youtube |
穆斯塔法·萨阿德·易卜拉欣 (mostafa.saad.fci) | Competitive Programming Youtube (Arabic Speech-English Text) |
图莎罗伊 | Youtube ,有很多教程视频. |
极客对极客 | Youtube |
算法直播! | Youtube |
代码厨师 | Youtube |
黑客排名 | Youtube |
我应得 | Youtube |
代码报告 | Youtube ,包含 HackerRank、LeetCode、Topcoder 和 Codeforces 的竞赛更新和问题教程. |
“Sothe”算法狼 | Youtube |
叶戈尔·库利科夫 (Egor) | Youtube |
Adam Bardashevich(订户). Youtube | |
Bohdan Pryshchenko(I_love_Tanya_Romanova) | Twitch, Youtube |
弗拉基米尔·斯米卡洛夫 (enot.1.10) | Twitch, Youtube |
亚历山大·阿巴斯 (Alex7) | Youtube |
米哈伊尔·季霍米罗夫 (Endagorion) | Youtube |
卡米尔·德博斯基 (Errichto) | Youtube |
大卫·哈迈耶(SecondThread) | Youtube, 社论, 高质量讲座(高级主题) |
我的代码学校 | Youtube, 关于基本编程、数据结构和算法的高质量视频 |
威廉林 (tmwilliamlin168) | Youtube, 主要是流、技巧,但鼓舞人心,有时很有见地 |
代码N代码(kazama460) | Youtube , 涵盖各种 CP 相关主题的简短讲座,如图论、数论、DP、高级数据结构. |
科林盖伦 (galen_colin) | Youtube, 社论, 截屏 |
威廉·费塞特 | Youtube, 几乎涵盖所有数据结构、算法的高质量视频 |
Quora¶
> 参观 Competitive Programming - Quora (Top 10 Most Viewed Writers).
重要社区人物 | 说明 |
---|---|
Bill Poucher | 执行董事 ACM-ICPC . 贝勒大学 CS 教授. |
Michal Forišek (misof) | 组织者 IPSC 和 IOI. CS Teacher at Comenius University in Slovakia. Algorithm 和 CS Education Researcher. Former highly-rated competitive programmer. |
Ahmed Aly (ahmed_aly) | 创办人 A2OJ. HackerRank 首席软件工程师. 前成员 Google Code Jam 团队. |
Other Awesome Resources¶
Articles¶
> 内容丰富且有用的文章
主题 |
---|
Overview of Programming Contests通过 Przemysław Dębiak (Psyho) |
The 'science' of training in competitive programming - Codeforces, 作者: Thanh Trung Nguyen (I_love_Hoang_Yen) |
If you ask me how to improve your algorithm competition skill, I will give you the link of this blog. - Codeforces, 由 Huang I-Wen (dreamoon) |
How to prepare for ACM - ICPC? - GeeksforGeeks, 通过 Vishwesh Shrimali |
Complete reference to competitive programming - HackerEarth, 拉维·奥贾 (Ravi Ojha) |
Getting started with the sport of competitive programming - HackerEarth, 通过 Triveni Mahatha |
FAQs¶
> 常见问题的精美解答
Awesome Lists¶
> 相关真棒列表
名称 | 链接 |
---|---|
C++ 书籍 | The Definitive C++ Book Guide and List - Stack Overflow |
Java 书籍 | What are the best books to learn Java? - Quora |
高级 Java 书籍 | What is the best book for advanced Java programming? - Quora |
算法 | tayllan/awesome-algorithms |
算法可视化 | enjalot/algovis |
数学 | rossant/awesome-math |
C++ | fffaraz/awesome-cpp |
爪哇 | akullpp/awesome-java |
课程 | prakhar1989/awesome-courses |
免费编程书籍 | vhf/free-programming-books |
Community-curated C++ Resources | Hackr.io |
Interview Questions¶
名称 | 说明 |
---|---|
CareerCup | 最受欢迎的软件工程面试准备网站. |
InterviewBit | 具有有趣和令人耳目一新的游戏设计,旨在唤起人们的练习兴趣. |
Awesome Interviews | 精选面试问题清单 |
LeetCode | 组织良好的软件工程面试准备网站,提供最佳解释解决方案. |
License¶
Awesome Competitive Programming 获得许可 Creative Commons Attribution 4.0 International License.