模版
韦我独尊-德天独厚
这个作者很懒,什么都没留下…
展开
-
树状数组模版
//二维树状数组 const int maxn = 1050; int c[maxn][maxn]; int n; int lowbit(int x) { return x&(-x); } //设原始矩阵为matrix,将matrix[x][y]加上val对c矩阵所做的修改 void add(int x, int y, int val) { int i=y; while (x<=n) {转载 2014-04-21 19:08:38 · 591 阅读 · 0 评论 -
SPFA模版理解
SPFA(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。 算法大致流程是用一个队列来进行维护。 初始时将源加入队列。 每次从队列中取出一个元素,并对所有与他相邻的点进行松弛,若某个相邻的点松弛成功,则将其入队。 直到队列为空时算法结束。 这个算法,简单的说就是队列优化的bellman-ford,利用了转载 2013-09-24 21:19:58 · 566 阅读 · 0 评论 -
组合数模版 整理
九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/12318011 组合数: 公式递推代码 C(n, m) = C(n -1, m - 1) + C(n - 1, m) const int M = 10007; //注意M是 取模 const int MAXN = 1000; int C[MAXN+1][原创 2014-07-19 10:15:48 · 646 阅读 · 0 评论 -
优先队列版子
优先队列用法 在优先队列中,优先级高的元素先出队列。 标准库默认使用元素类型的 优先队列的第一种用法,也是最常用的用法: priority_queueint> qi; 通过 故示例1中输出结果为:9 6 5 3 2 第二种方法: 在示例1中,如果我们要把元素从小到大输出怎么办呢? 这时我们可以传入一个比较函数,使用functional.h函数对象作为比较函数。转载 2014-08-03 19:50:17 · 489 阅读 · 0 评论 -
树状数组求区间和的一些常见模型
树状数组在区间求和问题上有大用,其三种复杂度都比线段树要低很多……有关区间求和的问题主要有以下三个模型(以下设A[1..N]为一个长为N的序列,初始值为全0): (1)“改点求段”型,即对于序列A有以下操作: 【1】修改操作:将A[x]的值加上c; 【2】求和操作:求此时A[l..r]的和。 这是最容易的模型,不需要任何辅助数组。树状数组中从x开始不断减lowbit(x)(转载 2015-03-29 09:29:01 · 443 阅读 · 0 评论