蓝桥官方总结知识点:
第一天(省三)
1.比赛介绍 2.环境解释(DEVC++用C11) 3.位运算 4.循环 5.日期问题
DEVC++用C11:首先打开Dev,在菜单栏中选中 工具—编译选项 将 编译时加入-std=c++11(注意std前有个杠)命令后打勾,然后点一下确定后就可以运行STL的相关语句了
第二天
1.递推/递归原理及分析
第三天(省二)
1.冒泡排序(经典排序) 2.归并排序(常用排序) 3.计数排序(特殊排序) 4.排序库函数的使用(sort) 5.排序算法的应用
第四天
1.一维前缀和 2.差分 3.二维前缀和
第五天
1.DFS(啥也不会也得学) 2.BFS 3.DFS两种经典问题:组合、排序
第六天(标准库)
1.set的使用 2.map的使用 3.可变数组 4.堆与优先队列 5.大数(JAVA)
第七天
1.整数二分 2.实数二分 3.二分的分析法,解题法
第八天
1.素数,整除 2.组合数 3.快速幂 4.GCD 5.容斥 6.错位排序
第九天(国赛)
1.倍增算法 2.ST算法 3.常见题型的应用
第十天
1.图的基础知识 2.图的存储 3.图的遍历 4.并查集
第十一天
1.最短路(Dijkstra)
第十二天
1.LCA树形算法(2023年考了3题,这几年估计不会考)
第十三天
1.线性DP,状态设定与分析
2.DP分析基本方法(这几年特别喜欢考DP)
第十四天
学长带做一套真题,讲解做题流程与方法
蓝桥杯省赛真题考点统计
为了方便同学们备考今年的蓝桥杯,统计了一下AcWing题库中蓝桥杯省赛真题考点出现频次。
另外,今年的【蓝桥杯集训·每日一题2024】活动按考点出现频次安排每天的题目。
统计结果如下:
知识点 出现次数
模拟 17
贪心 16
DP 14
枚举 11
数学 9
二分 8
数论 7
DFS 5
前缀和 5
推公式 5
快速幂 4
差分 4
双指针 4
状态压缩DP 4
思维题 4
BFS 3
树形DP 3
递推 3
字符串处理 3
排序 2
搜索 2
剪枝 2
递归 2
动态规划 2
分类讨论 2
线性DP 2
最大公约数 2
二叉树 2
背包问题 2
找规律 2
并查集 2
哈希表 2
分解质因数 2
堆 2
结论题 1
树的直径 1
斐波那契数列性质 1
龟速乘 1
树状数组 1
归并排序 1
矩阵乘法 1
哈希 1
区间DP 1
辗转相减法 1
图论 1
环 1
置换群 1
完全背包问题 1
扫描线 1
线段树 1
Flood Fill 1
均值不等式 1
滑动窗口 1
平衡树 1
STL Set 1
IDA* 1
日期问题 1
贡献法 1
Bellman-Ford 1
SPFA 1
Dijkstra 1
组合计数 1
栈 1
括号序列 1
博弈论 1
构造 1
图的遍历 1
概率论 1
数学期望 1
逆元 1
快速选择 1
链表 1
排序不等式 1
多路归并 1
整数分块 1
整除 1
单调队列 1
欧拉函数 1
状态机 1
区间合并 1
作者:yxc
链接:https://www.acwing.com/file_system/file/content/whole/index/content/11148724/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
由数据范围反推算法复杂度以及算法内容
//C++基础
//sort的用法 第三个参数填函数(可匿名)
sort(q, q + n, [&](int a, int b){
int ac = get(a), bc = get(b);
if(ac != bc) return ac < bc;
return a < b;
});
string a,b;
//string是可以直接比的
if(a != b) then;
//string的长度
a.size()
//截取字符串
a.substr(l, r - l + 1);//start length(末-初+1)
//翻转字符串
reverse(a.begin(), a.end());
//标准开头
//#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>
#include <queue>
//万能开头 #include <bits/stdc++.h>
using namespace std;
//IOS
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
//长整型
typedef long long LL;
//Pair
#define x first
#define y second
typedef pair<int, int> PII;
//定义范围
const int N = 1e6 + 10;
//无穷大INF
#define INF 0x3f3f3f3f
//vector引入创建操作元素
#include <vector>
vector<int> v1;//空
vector<int> v2(5,1);//初始化5个1
vector<int> v3(v2);//拷贝初始化
vector<int> v4(v2.begin(), v2.end());//迭代器初始化
vector<int> v5{1,2,3,4};vector<int> v6 = {1,2,3,4};//初始化为1 2 3 4
v1.push_back(1);//加入元素到尾部
v1.size()//数组长度
v1.pop();//删除队尾元素
//vector取最小值
auto min_it = std::min_element(vec.begin(), vec.end());//迭代器
int min_value = *std::min_element(vec.begin(), vec.end());//最小值
//foreach
for(auto i: ans){
cout << i << " \n"[i == ans.back()];//用字符串分隔+换行
}
//memset初始化
#include <cstring>
memset(h,-1,sizeof h);//整个h数组初始化为-1
//结构体排序operator
struct Sum{
int s,c,d;
bool operator< (const Sum &t)const{
if(s != t.s) return s < t.s;
if(c != t.c) return c < t.c;
return d < t.d;
}
}sum[N];
sort(sum ,sum+m);
//数学方法
#include <cmath>
sqrt(a);
//哈希表
unordered_set<int> st;
st.size();
st.insert(i);
//板子
//双指针
for(i = 0,j = 0; i < n; i++){
while(j < i && check(i, j)) j++;
//每道题目的具体逻辑
}
//可判断一个数是否为2的幂
LL lowbit(LL x){
return x&-x;//x&x-1}
//GCD
//最大公约数 gcd
LL gcd(int a,int b){
return b ? gcd(b,a % b):a;
}
//最小公倍数 a*b/gcd(a,b)
2025.5.5
看到一个板子挺好的,记录下来
CSDN:https://blog.csdn.net/lxy___lxy/article/details/138136366
acwing:https://www.acwing.com/blog/content/37013/
评论