wanghr模板
凛冬天明
这个作者很懒,什么都没留下…
展开
-
模板 Djkstra+链式前向星+堆优化
模板 Dijkstra+链式前向星+堆优化#include<iostream>#include<algorithm>#include<queue>#include<cstdio>#include<cstring>#define inf 1<<30using namespace std;struct Edge{ int nex,to,w;}edge[1000005];int原创 2017-08-04 10:53:27 · 2163 阅读 · 0 评论 -
Dijkstra 优先队列优化
struct ac{ int v,dis; ac(){} ac(int _v,int _dis):v(_v),dis(_dis){} bool operator < (const ac& x)const{ if(dis==x.dis) return v>x.v; return dis>x.dis; }};vector<ac>Adj...原创 2018-02-12 21:45:35 · 361 阅读 · 0 评论 -
Kurskal算法
struct Edge{ int u,v,cost;};int pre[maxn];Edge e[maxv];void init(int g){ for(int i=0;i<=g;i++){ pre[i] = i; }}int Find(int x){ int r = x; while(r!=pre[r]) ...原创 2018-02-12 21:39:32 · 543 阅读 · 0 评论 -
模板 Dijkstra
模板 Djkstravoid Dijkstra(int v0){ memset(vis,false,sizeof(vis)); memset(d,INF,sizeof(d)); d[v0] = 0; for(int i=0;i<n;i++){ int MIN = INF,u = -1; for(int j=0;j<...原创 2017-08-04 11:54:06 · 257 阅读 · 0 评论 -
Prim算法
typedef struct ac{ int v,cost; ac(){} ac(int _v,int _c):v(_v),cost(_c){}};vector<ac> Adj[maxn];int G[maxv][maxv];int d[maxn],n,m;bool vis[maxn];int Prim(int v0){ int sum = 0...原创 2018-02-12 21:37:26 · 296 阅读 · 0 评论 -
SPFA 模板
#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<algorithm>#define inf 0x3f3f3f3f#define CLR(a,b) memset(a,b,sizeof a)using namespace std...原创 2017-08-16 15:14:27 · 565 阅读 · 0 评论 -
Dijkstra多权值
多边权一般有三种 1 路径多条边权2 增加点权3 直接询问有多少条最短路这就是Dijkstra的变形, 注意在这三种都是在最短路的基础上的,比如增加边权花费, 问在如果有多条最短路径情况下 最小花费是多少, 或者增加点权, 每个顶点都有一定物资,询问有多条最短路的情况下物资最多为多少, 还有就是直接问 最短路有多少条一般解决这类问题的时候都会有三种不同的思路。一种是在求最短的同时直接算出来题目所问...原创 2018-02-12 21:11:02 · 518 阅读 · 0 评论 -
C++大数加法乘法
string add(string a,string b){ string res; reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); int i=0; int m,k=0; while(a[i]&&b[i]){ m = a[i]+b[i]+k-2*'0';原创 2017-10-04 11:30:48 · 572 阅读 · 0 评论 -
欧拉函数
f(x) = x(1-1/p1)(1-1/p2)….(1-1/pn) p1..pn表示x的质因数 模板代码:#include<iostream>#include<algorithm>#include<queue>#include<cstdio>#include<cstring>#define CLR(a,b) memset(a,b,sizeof b)#define inf 0x3f3原创 2017-08-21 12:24:19 · 258 阅读 · 0 评论 -
KMP算法
KMP算法 重点理解nex数组的是什么作用:nex[i]表示前i项的最大公众前后缀的长度,也就是匹配失败的时候字符串匹配过程中失配情况下可以向前多跳几个字符。 比如说一个字符串 “ABABAA”的nex数组. 重点来了!!! “A” nex[0] = 0 没有最大公共前后缀 “AB” nex[1] = 0 也没 “ABA” 最大公共前后缀为原创 2017-08-14 23:22:08 · 471 阅读 · 2 评论 -
大整数阶乘
大整数阶乘 参考某位大神的博客,时间久了找不到链接了,侵权删。其核心思想就是把计算结果每一位上的数字保存到一个数组成员中,例如: 把124保存至数组中,保存结果应该是result[0] =4;result[1] =2;result[2] =1 把整个数组看成一个数字,这个数字和一个数相乘的时候,需要每一位都和这个乘数进行相乘运算还需要把前一位的进位加上。写法如下:int 结果 = resu原创 2017-08-14 23:01:18 · 1631 阅读 · 1 评论 -
T1
#include<iostream>#define N 10000using namespace std;int vis[N];int n,m;char path[N];void dfs(int now,int step){ if(step == 0 ) { path[0] = '['; } else { path[...原创 2018-06-30 11:54:41 · 245 阅读 · 0 评论