学习路线

该学习路线既是新手学习算法竞赛知识的指南,也是一份复习清单。

先从C++语法学起,一步一步来。

以一句Hello,World!,开始算法竞赛之旅吧!

同时了解一下C++的源程序的大致框架是什么样子的。

计算机出现的最初目的就是计算。因此我们先学习如何完成一些简单的运算任务吧。

有的时候,我们需要在不同的条件下,选择执行不同的语句,这时候我们就需要借助分支语句。

分支语句包括下面几种:

将若干条语句重复执行多次,就需要用到循环语句。

循环语句包括下面几种:

数组用于存储大量相同类型的数据。而结构体则可以将若干变量捆绑起来。

使用函数来让程序变得模块化,降低实现成本。

递归则是新手入门的一道坎,「自己调用自己」听起来并不是那么容易理解,不过仔细深究根本,就会发现「自己调用自己」和「自己调用别人」并没有本质差别。

从现在开始,你已经会使用C++语言完成一些简单的任务了,但是这远远不够。

为了做对一些简单的题目,你需要学会通过枚举或模拟脑海中的逻辑,来实现代码。这看起来并不是很高效,但有的时候很管用。

递归是指函数定义中不断调用自己的方法;而分治则是不断将这一个问题分解为若干子问题,求解后合并的操作。

在做信息学题目时,经常会碰到的一个数据类型就是字符串,你需要学习一些用于操作字符串的STL函数。当然,模拟也是解决字符串问题的好方法。

当你获得了一组数据时,如何将他们从无序变成有序也是个很重要的问题。在你没有思路的时候,不妨考虑一下将数组排个序吧。这也是接下来的很多算法的基础。

排序的方法有点多,但理解后记住它们并不难。

NOI大纲中入门级只要求学习选择、冒泡、插入排序,共三个排序算法,但是其余的难度也并不大,且初赛中可能涉及,故一并列出。

二分查找,本质上是运用分治的思想,不断减少查找范围的大小,直至找到答案。但是需要注意,这个查找方式必须应用在有序的数据结构中。

在入门组,搜索的题目常常会在迷宫类题目中出现,一般会有地图类的数据;此外,搜索也十分常用于高效地枚举构造合法解的情况,亦可用于骗分。

深度优先搜索指利用递归函数方便地实现暴力枚举的算法,与图论中的DFS算法有一定相似之处,但并不完全相同。

将每一个状态设计为图中的一个点,可以展开地毯式搜索。

数组,链表,队列,栈,都是线性结构。巧用这些结构可以做出不少方便的事情。

动态规划(DynamicProgramming,DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

即给出一个有限制容量的背包,选择放入若干有容量和价值的物品,求解如何放置能使得价值总和最大。这是阻挡很多OIer的第一道坎,从这里开始,算法就有些难以理解。

记忆化搜索是一种通过记录已经遍历过的状态的信息,从而避免对同一状态重复遍历的搜索实现方式。有的题目也可以使用记忆化搜索来降低思维难度。

因为记忆化搜索确保了每个状态只访问一次,它也是一种常见的动态规划实现方式。

区间类动态规划是线性动态规划的扩展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来有很大的关系。

就算是longlong(或int64)还不够怎么办?用高精度算法。本质上就是模拟了四则运算。

在计算机中,除了二进制,比较常用的还有八进制和十六进制。有的时候学会运用正确的进制对解题也有很大帮助。

位运算就是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。

基本的位运算共6种,分别为按位与、按位或、按位异或、按位取反、左移和右移。

至此,你就学习完了入门组范畴内的所有算法,但是想要掌握它们,你需要继续进行足够数量的刷题,以巩固你所学到的知识点。

THE END
1.学习C++最好的四个网站C/C++废话不多说,直接上网址! 一.cppreference 网址:https://en.cppreference.com/w/ 二.LearnCpp 网址:https://www.learncpp.com/ 三.cplusplus 网址:http://www.cplusplus.com/ 四.TutorialsPoint 网址:https://www.tutorialspoint.com/cplusplus/index.htm 原文链接:学习C++最好的四个网站-CSDN博客https://download.csdn.net/blog/column/6460372/78654374
2.值得收藏的几个C/C++学习网站腾讯云开发者社区在C++ 的学习过程中离不开阅读大量的免费文档和网站,尤其是学完 C++ 基础后,不知道自己下一步要干什么,或者感觉 C++ 学习总是卡在某些地方,这时候阅读一些免费的文档与浏览一些网站,过掉这些障碍,C++ 学习之路会顺畅很多,今天在此分享一些学习文档和学习网站,希望有所帮助。 https://cloud.tencent.com/developer/article/1975305
3.十个值得推荐和收藏的C/C++学习网站免费学习c++编程 https://www.learncpp.com/ cppreference 最全面的C++ 参考手册。现在好像网站无法登录了。你可以下载中文文档。 TutorialsPoint 非常好的网站!它提供了几乎所有你想学习的技术(包括C++)的详细教程。保存一下吧,非常有用。 https://www.tutorialspoint.com/cplusplus/index.htm https://www.qianjiren.com/news/yxxw/21152.html
4.算法学习笔记1语法(C++组)51CTO博客包含printf();和scanf();c++中printf、scanf比cout、cin效率高很多算法题里cin、cout可能超时,虽然可以优化,但是优化之后还是比不上scanf和printf。第一章 算法入门及简单的顺序结构 编程是一种控制计算机的方式,和我们平时双击打开文件、关机、重启没有任何区别。 1.变量的定义 变量必须先定义,才可以使用。不能重名https://blog.51cto.com/15127589/2799861
5.TopCoder–C++算法爱好者的学习与分享网站C++算法爱好者的学习与分享网站写文章 登陆 切换搜索区域 type traits 发布日期 2024-10-31 发布于 C++ 这是第二张的重点内容 发布日期 2024-10-24 发布于 C++ 银行厘米啊有很多存款 发布日期 2024-10-24 发布于 C++ 在此测试,加入一张图片 发布日期 2024-10-24 发布于 C++ 算法分区 发布日期 2024http://www.topcoder.world/
6.中学生C++创意编程本书采用单元和课的形式,通过30个寓教于乐且贴近中学生学习和生活,符合中学生认知的编程案例,帮助学生学习和掌握C++的编程思维和方法。 本书利用流程图厘清编程思路,进而剖析解决问题必须的C++知识,包括常量、变量、顺序结构、选择结构、循环结构、数组、函数、文件操作、算法等。在此过程中,学生可以通过探索体会到编程https://www.epubit.com/bookDetails?id=UB7da3ec87a344a
7.趣题学算法(c++)高清pdf完整版[17MB]电子书下载☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持! ☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。 ☉ 本站提供的趣题学算法 (c++) 高清pdf完整版[17MB]资源来源互联网,版权归该下载资源的合法拥有者所有。https://www.jb51.net/books/702822.html
8.51信息学C++算法编程/IOINOINOIP竞赛/CSPJCSPC++ 算法编程 / IOI NOI NOIP 竞赛 / CSP-J CSP-S 培训主页 开始学习 我的课程 编程挑战排行榜 问答 课程大纲 语言基础 CL 序列课程 计算机编程语言基础课程 CL-1 计算机编程语言基础课程 CL-2 计算机编程语言基础课程 CL-3 计算机编程语言基础课程 CL-4 计算机编程语言基础课程 CL-5 算法预科 PL 序列https://m.51nod.com/
9.C++从入门到“精通“,我踩过的坑希望你可以绕着走侯捷C++视频全集与网络编程 https://mp.weixin.qq.com/s/302poB-agGUSepqNlmi9sQ QT视频教程: QT视频教程 https://www.bilibili.com/video/BV1jK4y1m7d4 数据结构与算法 书 比较系统地学习数据结构的话,推荐看《大话数据结构》、《算法(第4版)》和《数据结构与算法分析》。 https://www.360doc.cn/article/78125301_1024214476.html
10.Dotcpp编程(C语言网)编程入门学习训练题库C语言网(Dotcpp编程),老牌的编程入门学习平台,不仅仅提供C语言、C++、Java、Python、编译器(编程软件)等技术的教程资源和工具,还提供包括计算机二级、蓝桥杯真题在内的编程题库,让初学者学练同步,真正学会编程!https://www.dotcpp.com/
11.GitHubjobbole/awesomecpp机器学习 数学 多媒体 网络 物理学 机器人学 科学计算 脚本 序列化 视频 虚拟机 Web应用框架 XML 多项混杂 软件 编译器 在线编译器 调试器 集成开发环境 构建系统 静态代码分析 标准库 C++标准库,包括了STL容器,算法和函数等。 C++ Standard Library: 是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标https://github.com/jobbole/awesome-cpp-cn
12.鱼c工作室c/c++/python/wed/数据结构和算法June 2023 《数据结构和算法》(应用版,Python) 粤公网安备 44051102000615号 粤ICP备18085999号-2http://www.ilovefishc.com/