蓝桥杯大学本科B组考点整理

翻出考纲,查了csdn几个博客,然后根据之前做过的蓝桥题目,整理了下面的考点。
不保证全,但是希望对整体复习有帮助。
考纲和参考链接放在了最后。
新增:感谢cygg zggg xygg的补充

考点:

1、基本输入输出语法:
	(1)如cin速度比scanf慢 两者遇到空格回车会停止读入
	(2)若想读整行需要cin.getline()或gets函数
	(3)读到文件尾用scanf()!=EOF等等
	(4)占位符‘%’相关格式,如对齐方式,补0等。
2、C/C++库函数以及stl模板
	(1)algorithm: sort   next_permutation  lower_bound/upper_bound
	(2)queue(priority_queue) stack vector set map基本操作等
3、数据结构
	(1)结构体:注意结构体用sort排序,可自定义cmp函数,也可在结构体内重载“<”运算符。
	(2)字符串:string类的使用、字典树(用于求解前缀和后缀问题)。
	(3)栈、队列:前缀、后缀表达式计算等。
	(4)图:两种表示方法,邻接表和邻接矩阵,当n较大时只能采用邻接表。
	(5)树:树是一种特殊的图。如按层输出节点等
	(6)线段树:基本的单点修改、区间修改、区间查询等。
4、算法
	(1)暴力:蓝桥杯又称暴力杯,n<=1e3(1000),O(n^2)的代码大概率能解,如果1e4<=n<=1e6,则要考虑O(n*logn)的算法,不过蓝桥按测试点得分,实在不会,可用O(n^2)骗分,骗到了就是赚到了。
	(2)思维:不涉及算法,不涉及复杂数据结构,往往几行代码就可以解决,考验思维能力,多训练此类题目即可。
	(3)模拟:模拟指根据题目描述,按部就班的写代码就可以AC,通常思路容易看出但是代码量较大,考验细节与心态。
		①大数加减法
		②进制转换
	(4)数学问题:
		①质数相关:埃式筛、欧拉筛、唯一分解定理等。
		②求最大公因数:要自己会写gcd函数(欧几里得算法)
		③快速幂模板,矩阵快速幂模板
		④慢速乘模板(防止相乘的时候数太大爆掉long long)
	(5)贪心
	(6)动态规划:
		①最长公共子序列
		②最长上升/不下降子序列
		③背包问题(01背包、多重背包、完全背包等)
		④前缀和问题(一维/二维前缀和)
	(7)搜索:搜索基本是必考的点,包括DFS/BFS,可分别用栈和队列模拟。记忆化搜索也是常考的点,用于避免重复搜索。
	(8)图论:
		①最短路:最基本要掌握两种求法,floyd算法和dijkstra算法。前者O(n^3),适用于n不大于500的情况。后者dijkstra用的较多,数据结构实现有两种,邻接矩阵与邻接表,建议用邻接表(具体实现啊哈算法上有)。
		②最小生成树:kruscal算法和prim算法
		③拓扑排序
	(9)字符串:回文、kmp算法(字符串匹配算法)
	(10)其他:并查集、二分/三分算法等

官方考纲:

考查范围包括:以下范围中标* 的部分只限于 C/C++大学研究生组、C/C++大学 A 组、Java 大学研究生组、Java 大学 A 组。
C/C++程序设计基础:包含使用 C/C++编写程序的能力。该部分不考查选手对某一语法的理解程度,选手可以使用自己喜欢的语句编写程序。选手可在 C 语言程序中使用标准 C 的库函数,在 C++语言程序中使用标准 C++的库函数(包括 C 库、STL 等)。
Java 程序设计基础:包含使用 Java 编写程序的能力。该部分不考查选手对某一语法的 理解程度,选手可以使用自己喜欢的语句编写程序。选手可在程序中使用 JDK 中自带的类,但不能使用其它的第三方类。
计算机算法:枚举、排序、搜索、计数、贪心、动态规划、图论、数论、博弈论*、概率论*、计算几何*、字符串算法等。
数据结构:数组、对象/结构、字符串、队列、栈、树、图、堆、平衡树/线段树、复杂数据结构*、嵌套数据结构*等。

参考链接

https://blog.csdn.net/xyqqwer/article/details/81262056
https://blog.csdn.net/weixin_43556527/article/details/102975360
https://blog.csdn.net/weixin_30873847/article/details/95669926
https://blog.csdn.net/GD_ONE/article/details/104061907

### 蓝桥杯 C语言 近年考试重点 #### 数据类型及其应用 蓝桥杯竞赛中经常涉及基本数据类型的使用,包括整型(`int`, `long long`)、布尔型(`bool`)、字符型(`char`)和实型(`float`, `double`)。这些基础知识点不仅限于简单的定义变量,还涉及到不同数据类型之间的转换以及溢出等问题[^2]。 ```cpp #include <iostream> using namespace std; int main() { int a = 10; double b = static_cast<double>(a); // 显示转换 cout << "Value of b after conversion: " << b << endl; } ``` #### 数与字符串操作 数作为存储多个相同类型元素的数据结构,在历年真题里频繁出现。对于一维或多维数的操作、初始化、遍历等都是考察的重点之一;而字符串处理则涵盖了模式匹配、子串查找等功能实现[^1]。 #### 函数设计与递归算法 函数是程序模块化的重要手段,掌握如何编写高效可读性强的功能至关重要。特别是递归方法的应用场景下——比如斐波那契数列计算、汉诺塔问题求解等方面更是备受青睐。 ```cpp // 斐波那契数列的递归实现 unsigned long fibonacci(unsigned n) { if (n <= 1) return n; else return fibonacci(n-2); } int main(){ unsigned num=9; printf("%d",fibonacci(num)); } ``` #### 排序与查找算法 快速排序、冒泡排序等多种经典排序方式连同二分法在内的各种高效的检索技术均属于高频考点范围之内。理解并能够灵活运用上述提到的各种技巧可以有效提升解决问题的速度与准确性。 #### 动态规划入门题目练习 动态规划作为一种重要的优化策略被广泛应用于解决具有重叠子问题特性的复杂难题之中。通过构建状态转移方程来逐步推导最优解的过程也是近年来测试中的热点话题之一。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值