
笔记
太难了人都傻了
这个作者很懒,什么都没留下…
展开
-
几种排序笔记
快速排序void quick_sort(int q[], int l, int r){if(l >= r) return;int x = q[l + r >> 1], i = l - 1, j = r + 1;while(i < j){do i ++ ; while (q[i] < x);do j -- ; while (q[j] > x);if(i < j) swap(q[i], q[j]);}quick_sort(q, l, j);qui原创 2021-11-10 22:36:02 · 326 阅读 · 0 评论 -
树状数组入门算法笔记
预备知识——前缀和A为N个数所在的数组,B为另一个新的数组令B数组的第 i 项为A数组的A1至Ai项之和即:Bi = A0+A1+A2 + …+Ai则有Bi = Bi-1 + A i(其中B0 = A0)特别的,有时候为了方便,AB数组都从下标1开始前缀和的主要用途?区间求和!二叉树变化后二进制最后一个1代表某个数,Ci从Ai往前数这么多项方法1:(易于理解)int lowbit(int x){ return x - ( x & (x - 1) ) ;}方法原创 2021-11-01 16:37:03 · 172 阅读 · 0 评论 -
STL在竞赛中的应用
STL栈的应用栈的特点:1、先进后出(FILO)2、从栈顶删除元素3、在栈顶加入元素常见操作:判断栈是否为空查询栈大小访问栈顶元素栈顶加入元素删除栈顶元素STL种栈的基本用法创建栈对象:stack<元素类型> 栈名;栈顶添加元素:栈名.push(元素名);删除栈顶元素:栈名.pop();访问栈顶元素:栈名.top();//要先确保栈非空判断是否为空:栈名.empty();返回栈的大小:栈名.size();说明:栈和队列一样,没有clear之类的函数,如果想要原创 2021-10-28 15:51:14 · 370 阅读 · 0 评论 -
记忆化DFS和基于优先队列的BFS算法笔记
记忆化DFS例1:斐波那契数列递推:效率高,可以避免很多重复的计算递归:优点:程序很简洁缺点:空间容易爆栈,时间慢int dfs(int n){ if(n == 1 || n == 2) return 1; else return ( dfs(n-1)+dfs(n-2) )%1000000007;}记忆化dfsint dfs(int n){ if(fib[n]) return fib[n]; if(n == 1 || n == 2) fib[n] = 1; else fi原创 2021-10-17 17:36:05 · 180 阅读 · 0 评论 -
组合博弈入门算法笔记
组合博弈入门算法笔记取子游戏:什么是组合游戏——有两个玩家;游戏的操作状态是一个有限的集合(比如:限定大小的棋盘);游戏双方轮流操作;双方的每次操作必须符合游戏规定;当一方不能将游戏继续进行的时候,游戏结束,同时,对方为获胜方;无论如何操作,游戏总能在有限次操作后结束。概念:必败点和必胜点(P点&N点)必败点(P点):前一个选手(Previous player)将取胜的位置成为必败点。即下一个选手必败。必胜点(N点):下一个选手(Next player)将取胜的位置成为必原创 2021-10-15 18:30:42 · 1175 阅读 · 0 评论 -
二分匹配算法笔记
二分匹配二分图的最大匹配在二分图的应用中,最常见的就是求————最大匹配很多其他的问题都可以转化为匹配问题来解决匈牙利算法题型:真正求二分匹配的题目很少,往往做一些简单的变化比如:二分图的最小顶点覆盖什么是二分图的最小顶点覆盖?在二分图中求最少的点,让每条边都至少和其中的一个点关联,这就是:二分图的”最小顶点覆盖“。一句话记忆:最小顶点覆盖就是用最少的点覆盖所有的边变化(二)DAG图的最小路径覆盖什么是DAG图的最小路径覆盖?用尽量少的不相交简单路径覆盖有向无环图(DAG)的所原创 2021-10-13 22:44:40 · 165 阅读 · 0 评论 -
DFS入门算法笔记
预备知识二叉跟的遍历1、先根遍历(根左右)2、中跟遍历(左根右)3、后根遍历(左右根)先根遍历结果:271653894中根遍历结果:175632849后跟遍历结果:153674982给定先根中根遍历结果,可唯一确定二叉跟给定中根后跟遍历结果,可唯一确定二叉根给定先根后根遍历结果,不能确定二叉跟深度优先搜索(DFS)深度优先搜索基本模型:深度优先搜索的关键在于解决“当下该如何做!”至于下一步该怎么做,则与当前一样(只是参数不同而已)。伪代码:void dfs(int s原创 2021-10-12 22:34:14 · 204 阅读 · 0 评论 -
BFS入门算法笔记
队列:特点:先进先出从队头删除元素在队尾加入元素STL中队列的基本用法创建队列对象: queue<元素类型> 队列名;队列添加元素: 队列名.push(元素名);删除队首元素: 队列名.pop();访问队首元素: 队列名.front();访问队尾元素: 队列名.back();判断是否为空: 队列名.empty();返回队列大小: 队列名.size();示例:int a,b,c,d;queue<int> q;q.push(1); q.push原创 2021-10-10 20:11:56 · 179 阅读 · 0 评论 -
DP(入门)笔记
DP的思想和特点基本思想:如果各个子问题不是独立的(既:重复的),不同的子问题的个数知识多项式量级(即:有限的),如果我们能够保存已经解决的子问题的答案(一般用数组),而在需要的时候再找出以求得的答案,这样就可以避免大量的重复运算。主要特点:1、最优子结构:一个大问题的最优解,一定包含子问题的最优解;2、重叠子问题;3、无后效性;典型:1、非线性问题线性化2、从小往大算数塔问题:自顶向下分析;自底向上计算...原创 2021-09-05 15:50:59 · 202 阅读 · 0 评论 -
背包-笔记
背包的基本模型:给你一个容量为V的背包和若干种物品,在一定的限制条件下(每种物品都占用一定容量),问最多能放多少价值的物品?原创 2021-09-10 21:26:05 · 119 阅读 · 0 评论