自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 NOIP应试技巧

只希望在第一次错误犯下后,能记起别人的经验,提高自己的警惕性;在比赛中不丢掉不该丢的分,就是最好的得分方式。

2016-11-12 16:37:07 2272 2

原创 线段树-代码实现细节与技巧

写代码,就是不断地去模仿他人代码,总结出其中要点,再加上自己的体会。

2016-08-11 09:56:43 1903

原创 OI算法汇总

OI基本算法汇总

2016-07-28 15:31:18 1722

原创 【莫队】

小Z的袜子Powerful arrayCount on a tree II

2014-01-24 07:47:16 596

原创 【STRINGS】合集

[KMP]CrackPeriodic StringsString FactoringMilking Grid[Z-algorithm]A Secret BookQUERYSTRPalindrome DegreeRevolving DigitsPeriods of Words(okr)

2014-01-18 21:57:00 574

原创 【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 607 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 725

原创 【DP】ants

题目简述: 平面上有N只蚂蚁,每个蚂蚁的位置我们用一个整数坐标(x,y)表示。现在我们想知道这个平面上可能有几群蚂蚁。我们称一些蚂蚁组成一个群,当且仅当:这个群里任意两只蚂蚁之间的距离,都严格小于这个群里任意一只蚂蚁到不属于这个群的任意一只蚂蚁之间的距离。两只蚂蚁之间的距离为sqrt((x1-x2)^2+(y1-y2)^2)。对重合蚂蚁的特别声明:一只蚂蚁始终可以作为一个群,即可以认为自己到自

2012-10-26 19:46:02 462

原创 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 328

原创 Fermat素性测试, Miller-Rabin素性测试

首先, 强调一句: Matrix67原创 , 转贴请注明出处  http://www.matrix67.com/blog/archives/234昨天看了看spoj的第2题(坑啊~), 说的是找出 A,B之间的素数, 有T打表是不可能了, 只能一个一个判断。这是我们需要一个强力的方法来判断一个数是素数呢,还是合数。 所以可以想到这个素性测试。Fermat素性测试首先来说

2012-08-21 22:18:15 696

原创 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 323

原创 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 531

原创 Usaco Restack

今天在看奥数题的时候,突然发现最后一道题和一道oi题是一样的,看看题目之后(半年之前做的了),很巧妙的,只是我想不起来了。百度很久~很久~还是找不到题解,最后还是想到了,很激动,很激动~~~发一发~~Problem: English:: 传送~~http://www.spoj.pl/problems/RESTACK/~~    关键字:: usaco  restack中文::

2012-08-15 10:36:12 884

原创 【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 1162

原创 双连通分量_road

问一个无向图上面,连最少的边,使之成为一个双连通图.求出连边的具体方法。一开始首先要找出图里的双连通分量, 把他们缩成一个点后再处理.【双连通分量】求双连通分量的方法和Tarjan差不多, 改一下就好了.定义: "割点" & "桥" (上网有很多啊, 传送门:http://www.byvoid.com/blog/biconnect/zh-hans/)题目中要求的是“边双联通”,

2012-05-12 10:42:22 382

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除