登录  |  注册
¥10500.00
  中级        约400节       2年    
试听课程 立即购买

* 课 程 服 务 *





* 课 程 介 绍 *

       该课程涵盖六大模块,分别为:C++语法篇、算法基础篇、算法进阶篇、初赛集训与模拟、复赛真题以及 VIP 答疑与规划。 助力冲刺 CSP-J 初赛与复赛以及科技特长生。

* 讲 师 介 绍 *



● OI教练、开发工程师,具备5年开发经验、4年教学、教研、管理经验;
● 拥有CCF NOI指导教师认证、CCF PTA编程培训师资认证、CCF CSP计算机软件能力认证、蓝桥杯指导教师认证;
● 拥有华为2012分布式数据实验室、中科院自动化研究所、北京MEGVII旷视等知名企事业单位的offer;
● 拥有华为HarmonyOS应用开发者高级认证;
● 所带学员(青少年)在蓝桥杯(市赛、省赛、国赛)、CSP-J(第二轮)、CSP-S(第二轮)、NOIP中最高斩获一等奖。
● 所带学员(大学生)在历年多项算法竞赛中均有取得佳绩、在历年校招中均有取得​高薪offer。

* 阶段一:C++语法篇 *

      C++是一种强大的、面向对象的编程语言,它具有优秀的性能、更高的灵活性和可移植性。 目前高级算法竞赛、互联网大厂面试、计算机考研、高级开发等热门领域均离不开C++。 本课程主要介绍C++的基本概念、语法、编程技巧以及相关语法的对应的实战应用场景,同时引入了历年热门算法竞赛题目,辅助学习者更进一步掌握C++。

* 章 节 目 录 *

第1章 程序的基本概念


开篇和同学们聊聊为什么要学习C++语言,介绍课程的主要内容、课程特色、适合人群,进而讲解C++的由来和基本概念并完成第一个C++程序,带领同学们正式入门C++。


















第2章 基本数据类型


C++的基本数据类型在编程中非常重要,学习者需要熟练掌握各种数据类型的使用方法和特点,以便更好地进行编程。
















第3章 基本运算符


C++中的运算符是一类特殊的符号,用于执行数学和逻辑运算,以及比较和移位操作。它们可以用于组合表达式,以计算表达式的结果。C++运算符的使用可以使程序更加灵活、简洁,从而提高程序的可读性、可维护性和可重用性。











第4章 基本语句


学习C++基本语句可以帮助学习者更好地理解和使用C++语言。它们可以帮助学习者更有效地编写代码,提高代码的效率和可读性,并且可以帮助学习者更好地理解C++语言的语法和语义。






























第5章 数学库常用函数


C++标准库中包含了一系列数学库函数,这些函数的使用可以使程序更加灵活、简洁,从而提高程序的可读性、可维护性和可重用性。数学库函数的使用也可以提高程序的性能,因为它们是经过优化的,可以在更短的时间内完成运算。




第6章 函数与递归


C++函数是一种可以被调用的可重复使用的代码段,用于执行特定任务,学会函数的封装可以提高编程效率,增强代码的可读性,同时掌握函数也是学习递归法的前提。












第7章 数组


C++的数组是一种数据结构,它提供了一种简单而有效的方式来存储和处理大量数据。 本章中重点介绍C++数组的相关概念、基本操作以及经典应用场景。



















第8章 字符串


C++字符串是一种由字符组成的数据结构,它提供了一种简单而有效的方式来处理文本,包括字符串的比较、搜索、替换和拼接等操作,这些操作在编写C++程序时经常会用到。另外,C++还提供了一些专门用于处理字符串的类和函数,学习它们可以让你的编程更加高效和方便。





















第9章 结构体与联合体


结构体和联合体是C++中两种重要的数据结构,它们可以用来组织和存储多个数据元素,从而使学习者的程序更加灵活和高效。结构体和联合体的使用可以减少内存的消耗,并且可以提高程序的性能。另外,学习结构体和联合体也可以帮助学习者更好地理解C++中的其他数据结构,例如数组、字符串和指针等。












第10章 指针


指针可以用来存储和指向其他对象的地址,从而使学习者的程序更加灵活和高效。指针的使用可以减少内存的消耗,并且可以提高程序的性能。另外,学习指针也可以帮助学习者更好地理解C++中的其他数据结构,例如数组、字符串和结构体等。此外,指针也是C++中非常重要的一部分,它是C++中许多高级特性的基础,例如模板、迭代器和STL等。所以在C++中,掌握指针是非常有必要的。









第11章 文件读写


文件读写是C++程序中一个非常重要的部分,它可以用来读取和写入文件中的数据,从而使你的程序能够更好地与外部世界交互。学习文件读写可以帮助你更好地理解C++中的输入/输出流和文件操作,这些知识在编写C++程序时经常会用到。在开发领域会涉及到海量文件读写操作,在算法竞赛领域中的OI赛制下必须使用文件读写来完成输入输出重定向。








第12章 STL基础


STL是C++语言中一个重要的部分,它提供了一系列通用的、高效的和可重复使用的算法和数据结构,可以帮助你更好地编写C++程序,提高编程效率。学习STL可以帮助你更好地理解C++中的模板、迭代器和函数对象等高级特性,这些知识在编写C++程序时经常会用到。










* 阶段二:算法基础篇 *

       数据结构与算法[进阶篇]在数据结构与算法[基础篇]的基础上引入了更多的经典算法,如贪心、分治、搜索、动态规划等等,学习者通过本课的学习将升华算法思维,扩展解决问题的方案,提高解决方案的效率,为迈进算法高级领域做好充分地准备。

* 章 节 目 录 *

第1章 数据结构与算法简介


开篇和同学们聊聊为什么要学习数据结构与算法,介绍课程的主要内容、课程特色、适合人群,介绍数据结构与算法的应用领域和OJ训练平台。






第2章 算法和算法时间复杂度


算法的复杂度主要是指时间复杂度和空间复杂度。时间复杂度是指算法执行时间的度量,通常用大O符号表示。空间复杂度是指算法所需的内存空间的度量, 也通常用大O符号表示。通过学习时间复杂度,可以更好地分析和比较算法,从而选择更合适的算法。此外,学习时间复杂度也有助于学习者更好地理解算法的实现细节和优化算法。






第3章 基础算法


本章主要学习基础算法:枚举法、模拟法、二分法、被增法、前缀与差分。学习基础算法有助于学习者更好地理解计算机科学的基本思想和方法,从而更好地深入学习和研究计算机科学




























第4章 基本数据结构


本章主要学习基础数据结构:链表、栈、队列、树。通过学习这些基础数据结构可以初步了解不同数据结构的结构特点、相关操作的性能,以便学习者能在合适的场景下应用合适的数据结构。






















第5章 数值处理算法


高精度算法是为了解决实际问题时能够获得更精确的结果。高精度算法可以处理更高精度的数据,从而避免精度损失和误差。高精度算法通常需要更多的内存和时间,但是可以获得更精确的结果,尤其是在需要精确结果的领域,如科学计算、医学数据分析等等。








第6章 基础排序算法


本章中将学习基础的排序算法:冒泡排序、选择排序、插入排序、计数排序以及sort的使用等等,让学习者对不同排序算法原理、性能有一个初步的了解,并针对性地在特定场景中去使用。













第7章 递归算法


递归算法是一种通过递归调用自身来解决问题的算法。 递归算法通常需要更多的内存和时间,但是可以获得更简洁的代码,尤其是在需要重复执行相同操作的领域,如搜索算法、图算法等等。 总之,递归技术和递归算法是非常重要的,它是很多算法的必备前置技能。










第8章 递推算法


递推算法是一种用于求解递归问题的算法,它的特点是通过递归的方式自动产生解决问题的算法,可以避免重复计算,提高计算效率。学习递推算法可以帮助人们更好地理解递归思想,提高解决问题的能力。







第9章 初等数论


初等数论是研究整数和数论的基本概念和性质的数学分支,它的研究内容包括整数的模意义下的除法定理、整数的幂定理、整数的分解定理等。初等数论的研究有助于人们更深入地理解数学的基本性质,同时也为其他数学分支的研究提供了重要的基础。学习初等数论可以帮助人们更好地掌握数学基础知识,提高数学素养。








* 阶段三:算法进阶篇 *

       数据结构与算法[进阶篇]在数据结构与算法[基础篇]的基础上引入了更多的经典算法,如贪心、分治、搜索、动态规划等等,学习者通过本课的学习将升华算法思维,扩展解决问题的方案,提高解决方案的效率,为迈进算法高级领域做好充分地准备。

* 章 节 目 录 *

第1章 STL进阶


STL(标准模板库)是一个开源的、通用的、跨语言的模板库,其中包含了许多常用的、高质量的算法和数据结构,如容器、算法、迭代器等。学习STL可以帮助学习者更快地解决实际问题,提高编程效率。STL中的算法和数据结构都是经过精心设计和实现的,具有很高的可读性、可维护性和可重用性。学习STL也有助于提高学习者的编程能力和编程思想。












第2章 分治算法


分治算法是一种重要的算法思想,它的基本原理是将一个问题分成若干个相同或相似的子问题,然后递归地解决这些子问题,最终将子问题的解合并得到原问题的解。分治算法具有很好的时间和空间复杂度,可以有效地解决大规模的问题。学习分治算法可以帮助学习者更好地理解算法的思想和实现方式,提高解决问题的能力。







第3章 排序算法


本章主要学习更高级的排序算法:归并排序、快速排序、堆排序、桶排序、基数排序。







第4章 贪心算法


贪心算法是一种在每一步选择最优解的算法思想,它不保证最终的结果一定是最优的,但是可以保证结果是可行的。贪心算法的应用场景通常是在某种约束下求解最优解的问题,如最短路径、最佳排序等。学习贪心算法可以帮助学习者更好地理解贪心思想,提高解决问题的能力。同时,贪心算法也可以为其他算法的实现提供思路和参考。









第5章 基础图论


本章中将接触新的数据结构-图,主要讲解图的存储、图的深度优先搜索、图的广度优先搜索、无权图的最短路求解等等,为后续学习搜索与回溯算法以及提高篇的图论算法打下基础。












第6章 搜索与回溯算法


搜索与回溯算法是一种用于解决一类问题的通用算法思想,它的基本原理是从一系列可能的状态中搜索出满足要求的状态,或者在搜索无果的情况下回溯到上一步状态并尝试其他可能的状态。搜索与回溯算法具有很好的通用性和灵活性,可以应用于许多领域,如图搜索、解决问题等。学习搜索与回溯算法可以帮助学习者更好地理解算法的思想和实现方式,提高解决问题的能力。









第7章 动态规划


动态规划是一种用于解决复杂问题的有效算法思想,它的基本原理是将一个复杂问题分成若干个子问题,然后利用子问题的最优解来求解原问题的最优解。动态规划算法具有很好的时间和空间复杂度,可以有效地解决许多复杂问题,如最短路径、最佳排序等。学习动态规划算法可以帮助学习者更好地理解算法的思想和实现方式,提高解决问题的能力。 同时,动态规划算法也可以为其他算法的实现提供思路和参考。本章中我们将详细讲解4类动态规划:路径dp、序列dp、背包dp、区间dp。




































* 阶段四:初赛集训+模拟 *

      该课程针对信奥入门级第一轮进行了深度讲解, 其主要包含三个模块:单项选择题模块、程序填空题模块和程序阅读题模块, 三个主模块下共包含了45个专题知识点以及大约180道的历年真题的讲解, 课程循序渐进、由浅入深,帮助同学们攻破入门级第一轮的每一个专题知识点,最后一个模块将讲解针对第一轮的比赛技巧。

* 章 节 目 录 *

计算机基础知识


信息学奥赛中的计算机基础知识包括计算机的硬件和软件、计算机网络等方面的知识。 具体来说,参加信息学奥赛需要掌握的计算机基础知识包括: 计算机硬件:包括计算机的组成、各个部件的功能和作用、计算机的工作原理等。 计算机软件:包括操作系统、编程语言、数据库系统、计算机网络等。 计算机网络:包括计算机网络的基本概念、网络的构成、网络协议、网络安全等。







计算机存储及进制转换


计算机存储及进制转换是历年信奥初赛必考内容,学习者需要掌握计算机的存储单位、存储单位之间转换、计算机的二进制编码以及不同进制间的转换。





组合数学


组合数学是历年信奥初赛必考内容,学习者需要掌握组合数学基本公式以及组合数学相关的经典解决方案。










C++基础


本模块将针对C++基础中的四个专题进行实战讲解,四个专题分别为编程语言、数据类型、逻辑表达式、基本程序。






数据结构


数据结构是历年信奥初赛必考以及重点考察的内容,入门级常考的数据结构包括:数组、串、链表、栈、队列、树、图等等。








算法


算法是历年信奥初赛必考以及重点考察的内容,入门级常考的算法包括:模拟、枚举、二分、排序、递归、递推、分治、贪心、搜索、动态规划等等。








完善程序模块


完善程序是信奥初赛的第三部分,程序填空题目相对来说比较简单,通常情况下结合题意和上下文可以选出正确选项。










程序阅读模块


程序阅读是信奥初赛的第二部分,程序阅读部分题目偏难,历年以运算量大为特点,选手需要具备过硬的算法功底以及丰富的作答经验才能更好地处理这部分内容。















CSP-J初赛模拟试题


AcKing 100%自研CSP-J初赛模拟试题,查缺补漏、助力晋级。






* 阶段五:CSP复赛真题 *

      包括历年CSP-J复赛真题讲解。

* 阶段六:复赛题单训练 *

      由指导老师针对性布置复赛刷题题单,冲刺复赛及科技特长生。