- 博客(15)
- 收藏
- 关注
原创 【STRINGS】合集
[KMP]CrackPeriodic StringsString FactoringMilking Grid[Z-algorithm]A Secret BookQUERYSTRPalindrome DegreeRevolving DigitsPeriods of Words(okr)
2014-01-18 21:57:00 581
原创 【Aho-Corasick Automaton】
ZOJ 3494 BCD Code#include#include#includeusing namespace std;const int each[10][4] = {0,0,0,0, 0,0,0,1, 0,0,1,0, 0,0,1,1, 0,1,0,0, 0,1,0,1, 0,1,1,0, 0,1,1,1, 1,0,0,0, 1,0,0,1};const int N = 10
2014-01-16 21:29:59 620 1
原创 【KM】
#include#includeusing namespace std;const int N = 50, INF = 1e9;int nx, ny;bool adj[N][N];int v[N][N];bool vx[N], vy[N];int mx[N], my[N];int lx[N], ly[N], slack[N];void init(){ scanf("%
2014-01-16 21:25:53 734
原创 【DP】ants
题目简述: 平面上有N只蚂蚁,每个蚂蚁的位置我们用一个整数坐标(x,y)表示。现在我们想知道这个平面上可能有几群蚂蚁。我们称一些蚂蚁组成一个群,当且仅当:这个群里任意两只蚂蚁之间的距离,都严格小于这个群里任意一只蚂蚁到不属于这个群的任意一只蚂蚁之间的距离。两只蚂蚁之间的距离为sqrt((x1-x2)^2+(y1-y2)^2)。对重合蚂蚁的特别声明:一只蚂蚁始终可以作为一个群,即可以认为自己到自
2012-10-26 19:46:02 473
原创 sequence_单调队列, connon_DP
这周这两道题做的还好啦~还算找对了方法。1 sequence 给出n个二元对(ai, bi),从中确定最长不下降子串,其中位置i的值可以为ai到bi的任意一个。(通俗的讲就是,每个位置都可定一个值,介于ai与bi之间,再找出这个串的最长不下降子串)。 n这道题首先可以用贪心求解,从每个位置推下去就可以了。 fi= max(f i-1, a[i]) {fi-1 我用的是维护一个
2012-09-09 15:07:41 335
原创 Fermat素性测试, Miller-Rabin素性测试
首先, 强调一句: Matrix67原创 , 转贴请注明出处 http://www.matrix67.com/blog/archives/234昨天看了看spoj的第2题(坑啊~), 说的是找出 A,B之间的素数, 有T打表是不可能了, 只能一个一个判断。这是我们需要一个强力的方法来判断一个数是素数呢,还是合数。 所以可以想到这个素性测试。Fermat素性测试首先来说
2012-08-21 22:18:15 704
原创 gold_ 背包DP, memory_KMP
这几天做了几道题目, 就写一写,题目真得很~好。gold: 给出S个背包, 每个背包容量为Y, 和N件物品,可以去任意次, 每个物品有一个价值V和重量W,且知道合并两个背包的代价为C, 问价值和最大是多少。50%: S*Y100%: S,N对于50%的数据, 做两次DP即可。Gi表示容量为i的背包能放下的最大价值为多少, 转移方程为 G[i ]= G [i- Wj]
2012-08-21 11:59:41 327
原创 stick_矩阵乘法
好吧, 重新写一写矩阵乘法。考虑斐波拉契数列 Fi = Fi-1+ Fi-2 那么考虑一个1*2的矩阵{ Fi, Fi-1 } 乘以一个 2*2的矩阵, 成为{ Fi+1 , Fi}考虑矩阵乘法的定义, 这个一维数组的第一个数即为 原一位数组的每一个数 乘以 2*2矩阵的第一列数;第二个数即 原一位数组的每一个数 乘以 2*2矩阵的第二列数;以此类推。所以因为Fi+1
2012-08-17 21:06:56 539
原创 Usaco Restack
今天在看奥数题的时候,突然发现最后一道题和一道oi题是一样的,看看题目之后(半年之前做的了),很巧妙的,只是我想不起来了。百度很久~很久~还是找不到题解,最后还是想到了,很激动,很激动~~~发一发~~Problem: English:: 传送~~http://www.spoj.pl/problems/RESTACK/~~ 关键字:: usaco restack中文::
2012-08-15 10:36:12 894
原创 【Matrix】矩阵乘法
矩阵乘法: Mat Mult(Mat a, Mat b){ // Mat 为自定义类型 Mat c; memset(c.m, 0, sizeof(c.m)); c.r= a.r; c.c=b.c; // 新的矩阵的行列 for(int i=0; i<=c.r; i++){ for(int j=0; j<=c.c; j++
2012-05-22 17:58:14 1171
原创 双连通分量_road
问一个无向图上面,连最少的边,使之成为一个双连通图.求出连边的具体方法。一开始首先要找出图里的双连通分量, 把他们缩成一个点后再处理.【双连通分量】求双连通分量的方法和Tarjan差不多, 改一下就好了.定义: "割点" & "桥" (上网有很多啊, 传送门:http://www.byvoid.com/blog/biconnect/zh-hans/)题目中要求的是“边双联通”,
2012-05-12 10:42:22 389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人