
算法
__JAN__
I love coding
展开
-
动态规划——钢条切割
基于《算法导论》原创 2022-01-21 11:23:23 · 1039 阅读 · 0 评论 -
数论——求解模线性方程
求解模线性方程原创 2022-01-17 10:30:10 · 276 阅读 · 0 评论 -
数论基础——欧几里得拓展形式
欧几里得的扩展形式原创 2022-01-16 20:25:16 · 150 阅读 · 0 评论 -
数论基础-----最小公约数和最大公倍数
数论基础原创 2022-01-15 21:35:56 · 153 阅读 · 0 评论 -
Manacher算法----马拉车算法
求最长回文子串的位置原创 2022-01-11 22:44:38 · 434 阅读 · 0 评论 -
KMP算法-----下标从零开始的情况
KMP算法-----下标从零开始的情况原创 2022-01-10 16:04:51 · 524 阅读 · 0 评论 -
《算法导论》中KMP算法的实现——源码
《算法导论》中KMP算法的源代码原创 2022-01-10 14:56:44 · 404 阅读 · 0 评论 -
Rabin-Karp算法(哈希映射字符串匹配)
倒也不难,看一下源码就懂了,核心是把每一个字符串映射一个哈希值,通过哈希值就可以进行O(1)时间复杂度的每一次匹配不同字符串哈希值可能相同,所以取模一个数,正常取值一般比较大#include <bits/stdc++.h>using namespace std;int main(){ const int q=114514;//手动狗头 // a~z ASCII int ans = 0; int t = 0, h = 0; string原创 2022-01-10 00:00:26 · 513 阅读 · 0 评论 -
朴素算法(字符串的暴力枚举)
很好理解,不用多说#include <bits/stdc++.h>using namespace std;int main(){ string T; string P; cin >> T ;//n cin >> P; //m O( n-m+1 )m // a b c d ?bc unsigned long long int n,m; int ans=0; n=T.size();原创 2022-01-09 20:20:38 · 223 阅读 · 0 评论 -
算法导论 Bellman-Ford 算法的实现
#include <iostream>#include <cstring>using namespace std;const int M = 1000;int n,m;class Edge{public://从u点到v点的距离为weight int u; int v; int weight;};class point{public: int fa;//前驱节点 int dis;//源点到这个点的最短路径上限,因为bel.原创 2022-01-06 18:26:31 · 449 阅读 · 0 评论 -
prim最短生成树——数组模拟
#include <bits/stdc++.h>using namespace std;//邻接矩阵int adj_mat[10010][10010];//简单的来说,dis[i]//表示编号为i的节点,从已标记的点走i点到花费的最小费用就是dis[i],如果有,那就是被别的节点占用了//因为最小生成树是在一个连通图的条件下,基于贪心算法,dis加起来就是最小生成树的权值int dis [10010];bool s[10010];int n,m;int prim(int p.原创 2022-01-03 21:26:05 · 387 阅读 · 0 评论 -
图论:邻接表
#include <bits/stdc++.h>using namespace std;//邻接表的存储int head[10],ver[10],edge[10],net[10];void add(int x,int y,int z){ static int tot=0; tot++; ver[tot]=y; edge[tot]=z; net[tot]=head[x]; head[x]=tot;}int main(){ m.原创 2022-01-03 13:30:37 · 358 阅读 · 0 评论 -
滑动窗口代码
#include<bits/stdc++.h>using namespace std;int h,t=-1;int num[1000010];int main(){ int q[100]; int n,k; cin>>n>>k; for(int i=0;i<n;i++) cin>>num[i]; for(int i=0;i<n;i++) { if(h<=t&.原创 2021-12-29 14:08:36 · 522 阅读 · 0 评论 -
数的划分.
将整数nn分成kk份,且每份不能为空,任意两个方案不相同(不考虑顺序)例如:n=7n=7,k=3k=3,下面三种分法被认为是相同的。1,1,5 1,1,5 1,5,1 1,5,1 5,1,1 5,1,1问有多少种不同的分法。输入格式第一行有两个整数n,kn,k(6 <n \le 200,2 \le k \le 6)(6<n≤200,2≤k≤6)输出格式11个整数,即不同的分法个数。Sample Input7 3Sample ...原创 2021-12-07 15:50:22 · 814 阅读 · 0 评论