
ICPC
digiterrush
这个作者很懒,什么都没留下…
展开
-
pku1011 Sticks
一直没想好怎么搜索,所以一直没写,最近看到一段细节写得非常好的代码,于是把这道题AC了,感觉这段搜索写得灰常强大,短而效率高[code="c++"]#include #include #include using namespace std;const int maxN = 64 + 5;int n, stick[maxN], len, m;bool used[...原创 2009-10-26 16:10:13 · 154 阅读 · 0 评论 -
Java 高效I/O
[code="java"] static BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter cout = new BufferedWriter(new OutputStreamWriter(System.out));BufferedRead...原创 2010-08-19 16:54:34 · 89 阅读 · 0 评论 -
计算Jacobi符号
Quadratic reciprocityThe Jacobi symbol, (m/n), is defined whenever n is an odd number. It has the following properties that enable it to be easily computed. * (a/n) = (b/n) if a = b mod n. ...原创 2010-08-31 13:15:49 · 1570 阅读 · 0 评论 -
maximum clique 最大团
最大团模板[code="c++"]#include #include #include #include #include #include #include #include #define out(v) cout原创 2010-09-02 18:12:23 · 114 阅读 · 0 评论 -
矩阵快速幂
[code="c++"]typedef LL matrix[55][55];void ident(int size, matrix x){ for (int i = 0; i < size; ++i) for (int j = 0; j < size; ++j) x[i][j] = (i == j ? 1 : 0);}v...原创 2010-09-18 14:24:36 · 109 阅读 · 0 评论 -
Treap
[code="c++"]// Treap// Tested: bjtu1057, hdu1004, pku1002typedef int KEY;typedef int VALUE;struct node_t { int ch[2], pr; KEY key; VALUE value;} T[maxn];int size; // init: size = 0...原创 2010-09-18 22:19:34 · 88 阅读 · 0 评论 -
UVALive 5112 - Sales Prediction
封装了矩阵类比赛做得很郁闷,为什么别人写得很长、很罗嗦的代码可以过题,而我的总是过不了呢?...[code="c++"]/* * Author: rush * Created Time: 2011年01月05日 星期三 19时39分08秒 * File Name: icpc/20100105/E2.cpp */#include #include #incl...原创 2011-01-06 10:19:30 · 94 阅读 · 0 评论 -
整数划分
[code="c++"]#include #include #include #include #include #include #include #include #include #define out(v) cout原创 2010-10-07 10:38:20 · 107 阅读 · 0 评论 -
高斯消元
[code="java"]import java.util.*;import java.io.*;import java.math.*;class Fraction { BigInteger a = BigInteger.ZERO, b = BigInteger.ONE; Fraction() { } Fraction(BigInteger a, ...原创 2010-10-07 14:18:44 · 104 阅读 · 0 评论 -
布斯(Booth)乘法
源自http://watashi.ws/blog/1515/zojmonthly1010/[code="c++"]inline long long mul(long long lhs, long long rhs) { long long lhs2 = lhs % 100000; long long rhs2 = rhs % 100000; return ((lhs / 100...原创 2010-10-07 19:59:01 · 1462 阅读 · 0 评论 -
[转载]TopCoder插件
转载自:http://acm.cugb.edu.cn/blog/?p=253首先我们到http://www.topcoder.com/tc?module=Static&d1=applet&d2=plugins(FTP上有)下载几个插件,主要是这三个:Plugin Name: TZTesterPlugin Name: CodeProcessorPlugin Name: Fil...原创 2011-09-08 22:13:09 · 180 阅读 · 0 评论 -
pku 1018
写了两三个版本,最后这个效率最高[code="c++"]#include #include #include #include #include #include #include #include #include #define out(v) cout原创 2010-12-11 15:18:29 · 101 阅读 · 0 评论 -
ICPC编码建议
写代码最重要的是清晰,包括思路的清晰和代码结构的清晰。我们无法保证写的代码一定是正确的,但我们可以保证自己是在头脑清晰的情况下书写,并且通过不断的练习,用更加清晰的代码结构实现。越清晰,程序就越可能正确,并且即使出错也很容易看到问题。[code="c++"]0)在能过题的情况下,最朴素最好写的方式就是最好的。1)double x = 0;scanf("%lf", x...原创 2011-10-28 09:52:20 · 300 阅读 · 0 评论 -
HDU 4027
线段树变种在2logn段上面做文章,swap(x, y)太阴了...[code="c++"]/* * Author: rush * Filename: segment_sum2.cpp * Timestamp: 2012-02-04 19:12:20 CST */#include #include #include #include #inclu...原创 2012-02-04 22:09:25 · 93 阅读 · 0 评论 -
HDU 3954
线段树变种,也是在2logn段上面做文章[code="c++"]/* * Author: rush * Filename: hdu3954.cpp * Timestamp: 2012-02-04 23:26:50 CST */#include #include #include #include #include #include #incl...原创 2012-02-05 10:43:14 · 171 阅读 · 0 评论 -
pku3667 Hotel
查询最左端的连续空房间,思想是二分,不过是在线段树上做的二分,所以线段树结点上需要记录一些附加信息,为二分提供条件又WA了几次才过的,总结经验就是:更新区间的过程,递归进入子节点前,如果父节点被完全覆盖(在之前的操作中整个区间被修改为住人或空房),那么要相应地修改子节点;从子节点回溯出来后,根据子节点的情况更新父节点。查询区间的过程也是,要考虑父节点被完全覆盖的情况,这时就不用...2010-02-27 15:15:35 · 126 阅读 · 0 评论 -
pku3590 The shuffle Problem
将n分解为几部分,使得这几部分的最小公倍数最大,显然分解开的各部分应该有p^k的形式,其中p是素数因为n最大为100,所以直接枚举即可,不过别人有说只用前9个素数就行,我不知道怎么证明[code="c++"]#include #include #include using std::sort;const int maxn = 105;bool isp[max...原创 2010-02-12 17:27:17 · 92 阅读 · 0 评论 -
hdu 3236
终于能过这道题了,算是背包必做题之一吧[code="c++"]/* * Author: rush * Created Time: 2010年12月12日 星期日 12时34分31秒 * File Name: icpc/hdu3236_3.cpp */#include #include #include #include #include #incl...原创 2010-12-12 14:10:21 · 157 阅读 · 0 评论 -
zju1119 SPF
终于写好无向图找割点了,笔记一下割点的充分必要条件是1. 对于dfs搜索树的根,有至少两个子树2. 对于非dfs树的根,有至少一个子树p.s.其实这两个条件是一样的,因为对于非根节点,有一条边连到父节点,所以把它看成是树根的时候,就有至少两个子树了[code="c++"]#include #include #include #include #i...原创 2010-01-22 19:51:13 · 84 阅读 · 0 评论 -
广义中国剩余定理
Generalized Chinese Remainder Theorem来源:http://www.cut-the-knot.org/blue/chinese.shtml (IE only)Theorem 1[quote]Two simultaneous congruences n = n1 (mod m1) and n = n2 (mod m2) ...原创 2010-07-10 19:25:57 · 767 阅读 · 0 评论 -
generalized baby-step giant-step algorithm
一份很好的说明见这里:http://viva-villa.org/2010/02/baby-step-giant-step.html用这种方法实现的代码:[code="c++"]void exgcd(int m, int n, int &d, int &x, int &y){ if (n == 0) { d = m, x = 1, y = 0; } else {...原创 2010-07-14 12:06:22 · 137 阅读 · 0 评论 -
HDU 3397 Sequence operation
这道题又做得颇有感触...线段树好像总是很灵活,不过我觉得它应该也是有章可循的这次用自己配的gvim写,感觉还不错这次还学到一点技巧,就是无限WA时可以写个暴力程序对拍,对于这道题虽然没法一步一步跟踪数据,但是这样的对拍还是给了我许多启发线段树应该记录cover表示当前节点是否覆盖,以及覆盖的类型然后还是三部曲:进入子节点之前分配信息,递归调用子节点,从子节点回来合并信息...2010-05-03 22:07:26 · 100 阅读 · 0 评论 -
KMP算法模板
[code="c++"]// bjtu1394.cpp#include #include #include #include #include #include #include #include #include #define out(v) cout原创 2010-07-23 17:03:04 · 81 阅读 · 0 评论 -
RMQ模板
[code="c++"]/* * Author: rush * Created Time: 2010年07月28日 星期三 09时29分05秒 * File Name: icpc/hdu3486.cpp */#include #include #include #include #include #include #include #inclu...原创 2010-07-28 11:04:21 · 87 阅读 · 0 评论 -
hdu 3509
推导公式的题目,矩阵幂关键就在于构造系数矩阵备忘:S(n, k) - S(n - 1, k) = Fn ^ k当Fn能够线性表示的时候,S(n, k) = S(n - 1, k) + Fn ^ k 不也是线性表示嘛!Fn ^ k = sigma( C(k, i) * a^i * b^(k-i) * Fn-1^i * Fn-2^(k-i) ) 其中0 ...原创 2010-08-09 11:22:24 · 125 阅读 · 0 评论 -
DLX hdu 3498
“多重覆盖”或“重复覆盖”问题[code="c++"]#include #include #include #include #include #include #include #include #include #include #define out(v) cout原创 2010-08-11 16:48:33 · 126 阅读 · 0 评论 -
DLX hust 1017
“精确覆盖”问题[code="c++"]#include #include #include #include #include #include #include #include #include #define out(v) cout原创 2010-08-11 16:50:42 · 123 阅读 · 0 评论 -
DLX pku 3076
标准数独,精确覆盖[code="c++"]// pku3076.cpp#include #include #include #include #include #include #include #include #include #define out(v) cout原创 2010-08-11 23:45:01 · 138 阅读 · 0 评论 -
pku2761 Feed the dogs
这个题有多种做法因为区间没有包含与被包含的,所以可以按照从左到右的顺序依次处理处理到某个区间[i, j],可以通过确保[1, j]之间的元素都进入某个容器一次,且之后[1, i)之间的元素都出去某个容器一次,使得容器中存的是[i, j]之间的元素然后要求这个容器能够高效地回答里面存的第k大的元素是多少,这步可以用各种平衡树或者树状数组+二分实现,我写的是线段树[code="c+...原创 2010-02-05 20:40:05 · 95 阅读 · 0 评论 -
pku3468 A Simple Problem with Integers
典型的线段树区间更新、区间查询题目,代码基本上是自己根据理解写出来的注:之前的版本写的不好,现在的是修改后的[code="c++"]#include #include #include using std::min;using std::max;typedef long long LL;const int size = 100000 + 5;int ...原创 2010-02-07 00:05:11 · 89 阅读 · 0 评论 -
pku 2777 Count Color
也是线段树经典题,不过做了好久...这道题与之前的3468最大的区别在于它需要在递归前根据情况更新子节点的值,也就是[code="c++"] if (count(tree[node]) == 1) tree[node * 2] = tree[node * 2 + 1] = tree[node];[/code][code="c++"]#include #in...原创 2010-02-07 22:26:47 · 109 阅读 · 0 评论 -
pku2528 Mayor's posters
又一道线段树[code="java"]#include #include #include using std::sort;const int size = 10000000 + 5, maxn = (10000 + 5) * 2;int n, p[maxn * 2], lp, hash[size];struct seg_t { int li, ri;} s...原创 2010-02-08 22:23:48 · 108 阅读 · 0 评论 -
lower_bound and upper_bound
[code="c++"] /** * @brief Finds the first position in which @a val could be inserted * without changing the ordering. * @param first An iterator. * @param last Ano...原创 2012-02-09 00:36:13 · 132 阅读 · 0 评论