
acm模板/常用算法
豆苗子
这个作者很懒,什么都没留下…
展开
-
图
1、图1、邻接表的存储#include<stdio.h>#include<stdlib.h>#include<string.h> #define MAXN 10000struct { int value; //用来存边的权值 int to; //用来存边的末端 int next;// 用来储存下一条边的编号}edges[MAXN];int cnt = 0; //第一边的编号为零int head[MAXN]; //储存以 i 为 始点的边的编原创 2020-06-15 17:46:10 · 107 阅读 · 0 评论 -
DP
背包DP区间DP数位DP状态压缩DP原创 2020-06-15 17:44:05 · 136 阅读 · 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 · 159 阅读 · 0 评论 -
线段树
线段树讲解线段树模板1参考题解:#include<iostream>#include<cstdio>using namespace std;#define maxn 100010typedef struct node{ int l;//左孩子 int r;//右孩子 long long num;//维护的值 long long lz;//懒惰标记}t...原创 2020-06-15 17:10:20 · 144 阅读 · 0 评论 -
最小生成树(prim+kruskal)
primprim算法:找到和这个集合距离最小的点并入集合,然后再找和这个集合距离最小的点(已经在集合内的不能算)使用for循环,遍历一个点进行两种更新:一、更新这个点到集合最短距离 二、更新所有点到集合的最短距离。找到距离集合最近的点并入集合。当边数=点数-1时,跳出循环。#include<iostream>#include<algorithm>#define maxn 100using namespace std;int n,m;int edge[maxn][ma原创 2020-06-15 16:52:36 · 211 阅读 · 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 · 198 阅读 · 0 评论 -
hdu1251 统计难题 trie树模板
1、原题解链接2、(转)浅谈trie树链接关于输入:用gets输入可以读入空行#include<iostream>#include<cstdio>using namespace std;#define maxn 400001int nextt[maxn][26];int sum[maxn];char s[11];int root;int cnt=0;...转载 2020-06-15 16:44:17 · 143 阅读 · 0 评论 -
最短路合集(dijsktra+bellman-ford+spfa+floyd)
1、Dijkstradijkstra#include<iostream>#include<algorithm>#define maxn 100using 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 · 154 阅读 · 0 评论 -
ICA树(最近公共祖先,tarjan+倍增两种解法)
tarjan求lca转载 2020-06-15 16:26:59 · 182 阅读 · 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 · 322 阅读 · 0 评论