自定义博客皮肤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 124 1

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

快速幂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 238

原创 前缀和与差分

前缀和

2021-04-30 23:17:57 85 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 66

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

符号匹配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 116

原创 数组模拟堆

堆的基本操作堆的基本操作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 129

原创 最小生成树算法(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 150

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

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 272

原创 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 109

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

直接贴上代码const int N=100010;int e[N]; // 存储每一个插入的值int ne[N]; // 指向x接点的下一个节点int idx; // 给每一个插入的结点编号 int head=-1; // 头指针,初始化为-1void 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 102

原创 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 835

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

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

2020-11-29 19:43:54 176

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

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

2020-04-26

空空如也

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

TA关注的人

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