自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 文章目录123

123

2022-09-27 22:32:42 175

原创 数论算法--快速幂、欧几里得算法、扩展欧几里得算法、求逆元、线性同余方程

快速幂 markdown中符号不太好打,举个例子:311=31011=38+32+313^{11}=3^{1011}=3^8+3^2+3^1311=31011=38+32+31 代码如下: typedef long long ll; int qmi(int a,int k,int p){ // quickMi的缩写 int res=1; while(k){ if(k&1)res=(ll)a*res%p; // 乘法有可能溢出 k>>=1;

2021-05-09 23:01:14 281

原创 前缀和与差分

前缀和

2021-04-30 23:17:57 153 1

原创 快速选择算法

算法思想 基于快排,每次递归通过比较当前长度与k的大小从而判断进入哪一个递归 若k<=sl,则第k小的数一定在左边,进入quick_searck(a,l,j,k)寻找左边第k小的数 若k>sl,则第k小的数一定在右边,进入quick_searck(a,j+1,r,k-sl)寻找第sl-k小的数 代码如下 const int N=1e5+10; int a[N]; int n,k; int quick_search(int a[],int l,int r,int k){ if(l=

2021-04-29 21:44:28 96

原创 符号匹配+表达式求值

符号匹配 const int N=100010; char stk[N]; // 规定符号只有[({})]这六种 int top; map<char,int>a; void init(){ a['(']=1,a[')']=1,a['{']=2,a['}']=2,a['[']=3,a[']']=3; } bool isTrue(string str){ if(!str.size())return true; for(int i=0;i<str.size();i++){

2021-04-28 20:49:40 141

原创 数组模拟堆

堆的基本操作 堆的基本操作 heap.top() heap.pop(x) heap.push() heap.remove(k) // 删除第k个节点 heap.alter(k,x) // 修改第k个节点为x 用数组来实现堆的存储方式:用x表示父节点,2*x为左孩子,2*x+1为右孩子 若实现的是小根堆,则存在父节点>左孩子节点,父节点>右孩子节点 我们定义两个操作来实现堆 down操作 down操作主要用来将当前节点向下移动到正确的位置 void down(int x){

2021-04-23 20:29:53 163

原创 最小生成树算法(Prim算法与Kruskal算法)

Prim算法(稠密图) 伪代码 1. 将1号节点加入最小生成树 2. 寻找不在生成树中的顶点到生成树的最短边 // O(n) ,可用小根堆优化为O(log m) 3. 将其加入最小生成树 4. 更新所有节点到最小生成树的距离 5. 重复2-4操作,直到循环n次,或者第二步得到的最短边为INF时 结束循环。 C++代码如下 const int N=510,INF=0x3f3f3f3f; int g[N][N],dist[N]; int n,m; bool st[N]; // 是否在最小生成树中 in

2021-04-23 19:08:48 185

原创 带负权边的单源最短路径算法

const int N=510,M=1e5+10,INF=0x3f3f3f3f; int n,m,k; int dist[N],last[N]; struct Edge{ int a,b,w; }edges[M]; void bellmen_ford(){ memset(dist,0x3f,sizeof dist); dist[1]=0; for(int i=0;i<k;i++){ memcpy(last,dist,sizeof dist);

2021-04-23 15:26:23 321

原创 dijkstra算法

const int N=510,INF=1e9; int g[N][N]; // g[i][j] 存的是第i点到第j点的距离 int dis[N]; // dis[i] 存的是第一个点到第i点的距离 int n,m; // n为顶点数,m为边数 bool st[N]; // st[]存已经是最短路径的点 void dijkstra(){ memset(dis,0x3f,sizeof dis); // dis 初始化为0x3f3f3f3f (任意一个取不到的值即可) dis

2021-04-22 15:17:53 132

原创 用数组实现单链表(不带头结点)

直接贴上代码 const int N=100010; int e[N]; // 存储每一个插入的值 int ne[N]; // 指向x接点的下一个节点 int idx; // 给每一个插入的结点编号 int head=-1; // 头指针,初始化为-1 void Init(){ head=-1; idx=0; } void add_to_head(int x){ e[idx]=x; // Node*temp=new Node(x); ne[

2021-04-17 14:17:45 140

原创 C++高精度算法模板(加减乘除)

主函数模板 加减法模板 #include<iostream> #include<vector> #include<algorithm> using namespace std; vector<int>a,b; int main(){ string s1,s2; cin>>s1>>s2; for(int i=s1.size()-1;i>=0;i--)a.push_back(s1[i]-'0'); fo

2021-04-13 22:02:58 958

原创 LeetCode 股票买卖问题模板 (121 、122、123、188、309、714题)

最近在刷leetcode的DP,发现对于我而言难度有点大,特此记录刷题的过程,本文讲的是6个股票买卖的通用模板。 股票买卖问题1 股票买卖问题2 股票买卖问题3 股票买卖问题4 解题的原理可以这里给出,因此写的实在太好,就不再赘述,建议看完上述参考链接之后再看本文。 ...

2020-11-29 19:43:54 210

课程设计模板-IE18版 - Copy.doc

| 愿云原生不再只有Kubernetes| 愿

2020-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除