- 博客(9)
- 收藏
- 关注

原创 一些好用的函数(持续更新)
一些好用的函数1.关于全排列(1)next_permutation()(2)prev_permutation()2.关于二分查找(1)lower_bound()(2)upper_bound()(3)binary_search()3.关于排序(1)partial_sort()(2)nth_element()4.关于容器填充(1)fill()(2)fill_n()前言:本篇主要简单记录一些平时遇到的好用的或者性能很特别的函数,持续更新中!1.关于全排列(1)next_permutation()头文件:
2021-02-03 22:23:19
352
原创 2.3 动态规划1
在一个圆形操场的四周摆放 NN 堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。
2021-02-03 12:17:36
216
原创 2.2 数学知识1
2.2 数学知识一、素数1.素数计数函数2.唯一分解定理与标准分解式3.Eratosthenes筛法4.线性筛法二、因数1.因数的一些基本常识2.分解质因数3.枚举所有因数三、剩余系运算1.取模2.快速幂3.欧几里得算法求最大公约数4.最小公倍数5.扩展欧几里得算法6.费马小定理7.剩余系求逆元8.中国剩余定理四、欧拉函数1.定义2.相关公式一、素数1.素数计数函数素数计数函数记为π(x)\pi(x)π(x),表示小于等于xxx的素数的个数,即:π(x)={n∣n≤x且n为素数}\pi(x)=\{n
2021-02-02 12:02:46
359
原创 第五章 动态规划(一)
第五章 动态规划(一)一、背包问题1.01背包问题2.完全背包问题3.多重背包问题4.分组背包问题一、背包问题有nnn件物品和一个容量为vvv的背包。第iii件物品的体积是viv_ivi,价值是wiw_iwi。求解将哪些物品装入背包可使价值总和最大1.01背包问题01背包特点:每种物品仅有一件状态表示:定义f(i,j)f(i,j)f(i,j)表示只从前iii个物品中选择,总体积不超过jjj的最大价值,最终答案为f(n,v)f(n,v)f(n,v)状态转移:f(i,j)f(i,j)f(i,j)
2020-12-28 22:08:45
127
原创 第四章 数学知识(一)
第四章 数学知识(一)一、质数1.质数的判定——试除法2.质因数分解——试除法3.筛质数(1)Eratosthenes筛法(2)线性筛法一、质数1.质数的判定——试除法时间复杂度O(n)O(\sqrt n)O(n)bool is_prime(int n){ if(n<2) return false; for(int i=2;i<=n/i;i++) if(n%i==0) return false; return true;}2.质因数分解——试除法时间复杂度O(log
2020-12-25 17:23:39
626
原创 第三章 搜索与图论(一)
第三章 搜索与图论(一)搜索深度优先搜索(DFS)广度优先搜索(BFS)图论图搜索深度优先搜索(DFS)AcWing 842. 排列数字AcWing 843. n-皇后问题搜索方式:直接搜索到叶节点,再回溯剪枝:分为可行性剪枝和最优性剪枝可行性剪枝:判断当前状况是否合法最优性剪枝:判断当前情况是不是最优解(与当前出现的最优解进行比较)广度优先搜索(BFS)AcWing 844. 走迷宫AcWing 845. 八数码搜索方式:一层一层搜索,可以得到最短路径图论图1.图的分类分
2020-12-05 21:26:29
163
原创 C++ STL使用技巧
C++ STL使用技巧vector, 变长数组,倍增的思想 #include <vector> size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begin()/end() [] 支持比较运算,按字典序 //遍历方式: for(int i=0;i<a.size();i++) fo
2020-11-12 21:49:53
197
原创 第二章 数据结构
第二章 数据结构链表单链表双链表栈队列普通队列循环队列链表单链表AcWing 826. 单链表head 表示头结点下标e[i] 表示节点i的值ne[i] 表示节点i的next指针是多少idx 存储当前已经用到了哪个节点int head,e[N],ne[N],idx;//初始化void init(){ head=-1; idx=0;} //将x插入到头结点void add_to_head(int x){ e[idx]=x; ne[idx]=head; head=idx+
2020-11-12 21:29:57
292
原创 第一章 基础算法
基础算法排序快速排序归并排序二分整数二分浮点数二分高精度高精度加法高精度减法高精度乘低精度高精度除以低精度前缀和一维前缀和二维前缀和排序快速排序AcWing 785. 快速排序void quick_sort(int q[],int l,int r){ if(l>=r) return;//只有一个元素时已经有序 int x=q[l],i=l-1,j=r+1;//x是任意找的中间值,以q[l]为例 //i和j是从两端开始的指针 while(i<j){ do i
2020-11-01 22:08:37
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人