acm模板/常用算法
豆苗子
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图
1、图 1、邻接表的存储 #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAXN 10000 struct { int value; //用来存边的权值 int to; //用来存边的末端 int next;// 用来储存下一条边的编号 }edges[MAXN]; int cnt = 0; //第一边的编号为零 int head[MAXN]; //储存以 i 为 始点的边的编原创 2020-06-15 17:46:10 · 136 阅读 · 0 评论 -
DP
背包DP 区间DP 数位DP 状态压缩DP原创 2020-06-15 17:44:05 · 161 阅读 · 0 评论 -
树状数组总结
参考博客1 参考博客2 什么是树状数组 就是用数组来模拟树形结构。和线段树很像,但是代码比较简单,能做的事也比较少。 C[1] = A[1]; C[2] = A[1] + A[2]; C[3] = A[3]; C[4] = A[1] + A[2] + A[3] + A[4]; C[5] = A[5]; C[6] = A[5] + A[6]; C[7] = A[7]; C[8] = A[1] + ...原创 2020-04-29 17:47:44 · 196 阅读 · 0 评论 -
线段树
线段树讲解 线段树模板1 参考题解: #include<iostream> #include<cstdio> using namespace std; #define maxn 100010 typedef struct node{ int l;//左孩子 int r;//右孩子 long long num;//维护的值 long long lz;//懒惰标记 }t...原创 2020-06-15 17:10:20 · 170 阅读 · 0 评论 -
最小生成树(prim+kruskal)
prim prim算法:找到和这个集合距离最小的点并入集合,然后再找和这个集合距离最小的点(已经在集合内的不能算) 使用for循环,遍历一个点进行两种更新:一、更新这个点到集合最短距离 二、更新所有点到集合的最短距离。找到距离集合最近的点并入集合。 当边数=点数-1时,跳出循环。 #include<iostream> #include<algorithm> #define maxn 100 using namespace std; int n,m; int edge[maxn][ma原创 2020-06-15 16:52:36 · 238 阅读 · 0 评论 -
hdu2896-病毒侵袭-ac自动机模板题(runtime error再presentation error后我终于过了)
ac快乐机模板题…… 对照模板写完以后……内心崩溃.jpg 注意insert和cal_fail都放在输入m前面,插入和形成指针只要一次就好了 快乐提交之后…… 首先runtime error,上网查了一下不能s[i]-'a’而要直接s[i]转化成数字。对啊不然下标就变成负数了。。amazing 然后presentation error 最后是没有空格的!! oh也就提交了十次吧(kk #inclu...原创 2020-06-15 16:46:07 · 225 阅读 · 0 评论 -
hdu1251 统计难题 trie树模板
1、原题解链接 2、(转)浅谈trie树链接 关于输入:用gets输入可以读入空行 #include<iostream> #include<cstdio> using namespace std; #define maxn 400001 int nextt[maxn][26]; int sum[maxn]; char s[11]; int root; int cnt=0; ...转载 2020-06-15 16:44:17 · 169 阅读 · 0 评论 -
最短路合集(dijsktra+bellman-ford+spfa+floyd)
1、Dijkstra dijkstra #include<iostream> #include<algorithm> #define maxn 100 using namespace std; int edge[maxn][maxn];//邻接矩阵 int vis[maxn];//标记数组,如果这个点相邻边已经被松弛过,标记为1,下次遍历到的时候跳过 int dis[maxn];//存储1到i这个点现在的距离 void init(int n) { for(int i=1;i<原创 2020-06-15 16:41:56 · 222 阅读 · 0 评论 -
ICA树(最近公共祖先,tarjan+倍增两种解法)
tarjan求lca转载 2020-06-15 16:26:59 · 208 阅读 · 0 评论 -
KMP字符串匹配算法
算法其实并不难,但是讲的费劲,看的也费劲…… **问题描述:**给两个字符串str和ptr,求str中是否有和ptr相同的子串并找出这个子串在str中的位置 这个问题的暴力算法很好想:从头开始一个字母一个字母地遍历str,然后对照ptr是否是从这个位置开始的子串。而KMP算法利用了前后缀的特殊性,简化了时间复杂度。 (从O(MN)变为O(M+N)) ps:算法思想可以参考:http://www.r...原创 2020-06-15 16:11:46 · 346 阅读 · 0 评论
分享