一)基础算法 浮点数二分算法模板 double find(double l, double r) { const double eps = 1e-6; // eps 表示精度,取决于题目对精度的要求 while (r - l > eps) { double mid = (l + r) / 2; if ...
转载
2021-08-14 17:28:00
10000+阅读
2评论
gcd(最大公约数) int gcd(int a,int b) { if(b == 0) return a; return gcd(b,a%b); } 快速幂 ll ksm(ll a,ll b,ll p) { ll ans = 1; while(b > 0) { if(b&1) ans = ans ...
转载
2021-10-03 20:47:00
42阅读
2评论
文章目录DP部分01背包完全背包多重背包LISLCSDP部分01背包int dp[MAXN];for(int i=0;i<n;i++) for(int j=W;j>=w[i];j--) dp[j]=max(dp[",dp[W]);完全背包int dp[MAXN];for(int i...
原创
2022-10-18 16:08:03
40阅读
结构体排序结构体外/** * Definition of Interval: * class Interval { * int start, end; * Interval(int
原创
2023-07-11 16:17:24
40阅读
各类算法基础模板 二分查找法 KMP 二叉树 // Definition for a binary tree node. public class TreeNode { public int val; public TreeNode left; public TreeNode right; Tree ...
转载
2021-08-29 16:43:00
67阅读
2评论
快排模板
原创
2023-06-07 13:51:02
92阅读
快排 void quick_sort(int a[], int l, int r) { if (l >= r)return; int p = a[l]; int i = l - 1, j = r + 1;//左右各移动一格,配合do-while while (i < j) { do i++; whi ...
转载
2021-09-07 10:38:00
135阅读
2评论
Sunday是一个线性字符串模式匹配算法。算法的概念如下: Sunday算法是Daniel M.Sunday于1990年提出的一种字符串模式匹配算法。其核心思想是:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配
原创
2021-06-04 20:42:54
175阅读
Code:
原创
2021-07-07 17:26:49
100阅读
大白书P248有证明,此处贴出两种复杂度的方案,n^4大白书P350n^3 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 /* KM算法 7 * 复杂度O(nx*nx*ny) 8 * 求最大权匹配 9...
原创
2021-07-28 14:03:40
248阅读
输入点数n,边数m,起点终点边权输出1号节点到所有点的最短路径长度#include#include#includeusing namespace std;int n,head[100000],num,m,dis[100000];bool vis[100000];struct node{ int...
转载
2017-04-14 09:39:00
75阅读
2评论
EdmondsKarp算法,简称EK算法,O(m^2n) 因为是初学教程,所以我会尽量避免繁杂的数学公式和证明。也尽量给出了较为完整的代码。 本文的目标群体是网络流的初学者,尤其是看了各种NB的教程也没看懂怎么求最大流的小盆友们。本文的目的是,解释基本的网络流模型,最基础的最大流求法,即bfs找增广
转载
2015-07-27 10:34:00
38阅读
2评论
KMP模板
原创
2023-02-17 08:43:04
48阅读
想要完全理解还是有些困难的,这里简单叙述一下思路: 在求next数组时,把“后缀”的p串固定在上方,依次遍历每个元素作为截断的末尾,通过移动下方的p串使其前缀与上方p串的后缀重合,求出其next。 假设已经求出了next[i-1] = j, 考虑next[i] 如果p[j+1] == p[i], 什 ...
转载
2021-10-25 21:48:00
58阅读
2评论
一、经典问题1、Miller-Rabin素数测试#include&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp
原创
2023-08-30 14:47:53
105阅读
1. 题目来源: 牛客网2. 题目描述:将给出的链表中的节点每\ k k 个一组翻转,返回翻转后的链表如果链表中的节点该返回 3\to2 \to1 \to
原创
2022-07-05 17:09:11
61阅读
RMQ算法,主要用于求区间最大值或者区间最小值。本质就是通过倍增的方法进行计算。
原创
2022-09-10 07:10:05
103阅读
一.线性表1.1线性表基本定义1二.树2.1二叉树建立12.2二叉树静态表示12.3二叉查找树
原创
2022-08-25 11:31:20
100阅读
点赞
/* KMP算法 by KONE */ #include #include using namespace std; int* getNxte(char p[], const int size){ int* next = new int[size]; next[0] = -1; //最开头的字符串设置为-1 int k = -1, j = 0; ...
原创
2021-07-15 14:50:40
207阅读
很久没有出去溜达了,今天天气好,就放松放松去,晚上在办公室没啥事,把以前写的一个基于标准的欧式距离的模板匹配代码共享吧。 opencv有模板匹配的代码,我没看他是如何优化的,所以不管他吧,我只描述我自己实现。 基于欧式距离的模板匹配就是遍历被匹配图的每一个像素,然后计算以该像素为中心