
*ACM 模板*
J_zyq
路漫漫其修远兮 吾将上下而求索
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
背包模板
const int MAXN = 101;const int SIZE = 50001;int dp[SIZE];int volume[MAXN], value[MAXN], c[MAXN];int n, v; // 总物品数,背包容量// 01背包void ZeroOnepark(int val, int vol){ for (int j = v原创 2017-05-04 19:27:53 · 365 阅读 · 0 评论 -
次小生成树
O(V^2)结论次小生成树可由最小生成树转换一条边得到证明T是某一棵最小生成树,T0是任一棵异于T的树,通过变换T0->T1->T2->…->Tn(T)变成最小生成树,所谓的变换是,每次把T_i中的某条边换成T中的一条边,而且树T_(i + 1)的权小于等于T_i的权。 具体操作是: step1. 在T_i中任取一条不在T中的边u_V; step2. 把原创 2017-05-04 19:30:55 · 374 阅读 · 0 评论 -
第K短路
Dijkstra/* * Dijkstra变形,可以证明每个点经过的次数为小于等于K, * 所有Dijkstra的数组dist由一维变为二维,记录经过该点 * 1次、2次......k次的最小值 * 输出dist[n - 1][k]即可 */int g[1010][1010];int n, m, x;const int INF = 0x3f3f3f3f;int vis[10原创 2017-05-04 19:34:58 · 306 阅读 · 0 评论 -
KMP
KMP算法KMP_Pre/* * next[]的含义,x[i - next[i]...i - 1] = x[0...next[i] - 1] * next[i]为满足x[i - z...i - 1] = x[0...z - 1]的最大z值(就是x的自身匹配) */void KMP_Pre(char x[], int m, int next[]){ int i, j;原创 2017-05-04 20:52:51 · 286 阅读 · 0 评论 -
欧拉路径-欧拉回路
有向图定理:有向图D存在欧拉通路的充要条件是: D为有向图,D的基图(就是图D对应的无向图)连通,并且每个节点的出度等于它的入度; 或者> 除两个节点外,其他节点的出度与入度都相等,而这两个节点中,其中一个节点的出度与入度的差为1(out-in=1),另一个顶点的出度与入度之差为-1(out-in=-1) 判断欧拉路是否存在的方法:有向图:图连通,有原创 2017-05-04 19:45:37 · 694 阅读 · 0 评论