- 博客(117)
- 收藏
- 关注

转载 AC自动机
AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有字典树Trie和KMP模式匹配算法的基础知识。KMP算法是单模式串的字符匹配算法,AC自动机是多模式串的字符匹配算
2015-10-18 14:17:09
248

原创 大素数判断和素因子分解(miller-rabin,Pollard_rho算法)
可啪;O(n^0.25)的可啪东西效率极高传说中的随机算法#include#includestring.h>#include#include#include#includeusing namespace std;//****************************************************************// Mille
2015-10-06 10:55:36
401

转载 km算法(求二分图带权的最大匹配)
1,如果二分图不是完全二分图,我们通过添加无用路径(最大匹配中,路径权值为0)和顶点使之成为完全二分图;2,使用KM算法求解,KM算法核心需要理解feasible vertex labeling和equality subgraph概念,在equality subgraph中寻找最大匹配(采用匈牙利算法),如果最大匹配正好为完全匹配,根据KM理论,这个完全匹配就是带权值的最大匹配;如果在当前
2015-09-09 20:03:57
798

原创 矩阵乘法求斐波那契数列(快速幂)
首先介绍矩阵乘法:定义:设A=( )为 的矩阵,B=( )为 的矩阵,那么称 的矩阵C=( )为矩阵A与B的乘积,记作 ,其中矩阵C中的第 第 列元素为由定义可知,1:当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。2:矩阵C的行数等于矩阵A的
2015-09-05 15:56:52
972

原创 网络流(最大流和最小费用流)
几个月前学过,然而一下就忘记了,于是决定系统的复习一下。关于网络流各路神犇早已有很好的讲解,于是我就整理一下(其实我是蒟蒻,看到的果断关掉吧)http://blog.youkuaiyun.com/leolin_/article/details/7202691残余网络: 两个点之间有一个流的限制,那么假如有一个流流过,那么残余网络记录的是在进行几次操作之后,两点间还可以通过多少。增广路径:(
2015-07-20 10:19:00
4394

原创 字典树(Trie树)
1性质它有3个基本性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相同。2基本操作其基本操作有:查找、插入和删除,当然删除操作比较少见。3实现方法搜索字典项目的方法为:(1) 从根结点开始一次搜索;(2) 取得要查找
2015-07-15 11:04:51
329

转载 后缀数组小结
(别人的,别在意里面的称呼,I'm so sorry)后缀数组号称字符串处理神器,不过发现好多人都只会用模板,其实这不是我们学算法的本质,我们学习算法的本质应该理解其实现原理,并加以实现,特别是算法,更讲究的是一种思想。一年前的我也是只会用别人的模板,最近却静下心来,研究了一下后缀数组,自己写了一份自己的模板。我基本上是跟着连教的ppt来学习的,当然也少不了百度,先讲一下基本概
2015-07-14 19:58:26
289

转载 KMP 字符串匹配
kmp(看毛片)算法。一般来说,匹配字符串,假如在一次比较中,发现不匹配,我们会把首项向后挪,在进行比较,知道匹配成功。要知道,无脑的向后移一位是十分浪费时间的。于是,诞生的看毛片,教你如何向后移,可以减少浪费的时间。先是通过特殊方法算出匹配值,然后移动的多少取决于已经匹配的长度-最后匹配的字符的匹配值。具体看http://kb.cnblogs.com/page/176818/
2015-07-13 10:30:58
3776

原创 dp斜率优化
http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html我们知道,有些DP方程可以转化成DP[i]=f[j]+x[i]的形式,其中f[j]中保存了只与j相关的量。这样的DP方程我们可以用单调队列进行优化,从而使得O(n^2)的复杂度降到O(n)。 可是并不是所有的方程都可以转化成上面的形式,举个例子:
2015-06-03 12:54:15
329

转载 A*算法
在看下面这篇文章之前,先介绍几个理论知识,有助于理解A*算法。启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。估价函数:从当前节点移动到目标节点的预估费用;这个估计就是启发式的。在寻路问题和迷宫
2015-04-19 15:24:11
445

原创 求有向图强连通分量个数
强连通图(Strongly Connected Graph)是指一个有向图(Directed Graph)中任意两点v1、v2间存在v1到v2的路径(path)及v2到v1的路径的图。在一个tu
2014-11-03 15:39:53
8715

转载 二分图的最大匹配、完美匹配和匈牙利算法
二分图的最大匹配、完美匹配和匈牙利算法2013-08-01Algorithms二分图匹配, 图论, 算法这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图:
2014-09-18 13:21:08
459

转载 线段树讲义
线段树讲义例题:在自然数,且所有的数不大于30000的范围内讨论一个问题:现在已知n条线段,把端点依次输入告诉你,然后有m个询问,每个询问输入一个点,要求这个点在多少条线段上出现过(0 最基本的解法当然就是读一个点,就把所有线段比一下,看看在不在线段中;每次询问都要把n条线段查一次,那么m次询问,就要运算m*n次,复杂度就是O(m*n)这道题m和n都是30000,那么计算量
2014-07-05 19:57:08
507

转载 动态规划索引
1. 资源问题1 -----机器分配问题 F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2. 资源问题2 ------01背包问题 F[I,j]:=max(f[i-1,j-v[i]]+
2014-07-05 19:56:30
384
转载 Binomial Queue
A binomial queue is not a heap-ordered tree, but rather a collection of heap-ordered trees, known as a forest. Each heap-ordered tree is a binomial tree.Observation : Bk consists of a root with ...
2019-03-26 16:42:47
967
转载 Leftist Heap and Skew Heap
Leftist Heap【Definition】The leftist heap property is that for every node X in the heap, the null path length of the left child is at least as large as that of the right child.(Npl(NULL)==-1)【Theor...
2019-03-26 16:01:25
646
原创 1053: [HAOI2007]反素数ant
1053: [HAOI2007]反素数antTime Limit: 10 Sec Memory Limit: 162 MBSubmit: 2421 Solved: 1344[Submit][Status][Discuss]Description对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)>g(i) 0
2016-02-15 14:26:26
880
原创 1179: [Apio2009]Atm
Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 2220 Solved: 898[Submit][Status][Discuss]DescriptionInput第一行包含两个整数N、M。N表示路口的个数,M表示道路条数。接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点
2015-12-19 20:11:34
415
原创 1005: [HNOI2008]明明的烦恼
1005: [HNOI2008]明明的烦恼Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3484 Solved: 1383[Submit][Status][Discuss]Description自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多
2015-12-19 15:26:23
663
原创 1006: [HNOI2008]神奇的国度
1006: [HNOI2008]神奇的国度Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 2583 Solved: 1169[Submit][Status][Discuss]DescriptionK国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的
2015-12-13 15:31:32
409
原创 1008: [HNOI2008]越狱
Description监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱Input输入两个整数M,N.1Output可能越狱的状态数,模100003取余Sample Input2 3Sample Output6
2015-12-06 14:58:57
555
原创 1076: [SCOI2008]奖励关
1076: [SCOI2008]奖励关Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1245 Solved: 704[Submit][Status][Discuss]Description你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下
2015-11-29 16:24:49
306
原创 凸包 graham旋转扫描
凸包(Convex Hull)是一个计算几何(图形学)中的概念。在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的线性组合来构造.在二维欧几里得空间中,凸包可想象为一条刚好包著所有点的橡皮圈。用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边型,它能包含点集中所有的点。
2015-10-24 13:44:20
459
原创 usaco4.1.1Beef McNuggets
麦香牛块描述农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块。奶牛们正在想尽一切办法让这种可怕的设想泡汤。奶牛们进行斗争的策略之一是“劣质的包装”。“看,”奶牛们说,“如果你只用一次能装3块、6块或者10块的三种包装盒包装麦香牛块,你就不可能满足一次只想买1、2、4、5、7、8、11、14或者17块麦香牛块的顾客了。劣质的包装意味着劣质的产品。”
2015-10-22 20:35:38
581
转载 usaco Computational Geometry 计算几何
目录 [隐藏] 1 知识准备2 操作2.1 叉积2.2 点积2.3 反正切3 全面考虑问题4 计算几何算法4.1 三角形面积4.2 两条线段平行吗?4.3 多边形面积4.4 点到直线的距离4.5 点在直线上4.6 点都在直线的同侧4.7 点在线段上4.8 点在三角形内4.9 点在凸多边形内4.10 四点(或更多)共面4.11 两条直线相交4.12 两条线段相交4.1
2015-10-22 19:06:54
586
原创 usaco 1.3.7wormhole
描述农夫约翰爱好在周末进行高能物理实验的结果却适得其反,导致N个虫洞在农场上(2根据他的计算,约翰知道他的虫洞将形成 N/2 连接配对。例如,如果A和B的虫洞连接成一对,进入虫洞A的任何对象体将从虫洞B出去,朝着同一个方向,而且进入虫洞B的任何对象将同样从虫洞A出去,朝着相同的方向前进。这可能发生相当令人不快的后果。例如,假设有两个成对的虫洞A(1,1) 和 B(3,1
2015-10-22 13:20:42
332
原创 N 2469电池的寿命
2469:电池的寿命查看提交统计提问总时间限制: 描述输入输出样例输入23 533 3 5样例输出3.05.51000ms 内存限制: 65536kB小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电。为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产商不同,质量也有差异,因而
2015-10-16 14:10:44
855
原创 楼层扔鸡蛋问题
IMNU OJ 1253--鸡蛋鸡蛋Time Limit:1000MS Memory Limit:65536KDescriptionGardon有一些鸡蛋,他现在想知道这些鸡蛋的硬度。Gardon的家住在一座很高很高的大楼里,他现在要在这座大楼上测试鸡蛋的硬度。每个鸡蛋的硬度相同,鸡蛋的硬度定义为:如果鸡蛋从第m层上掉下来没有破裂,而从第m+1层上掉下来就破裂了,
2015-10-13 21:18:37
935
原创 covs 2800 送外卖
2800 送外卖 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond题解 查看运行结果题目描述 Description有一个送外卖的,他手上有n份订单,他要把n份东西,分别送达n个不同的客户的手上。n个不同的客户分别在1
2015-09-20 16:27:02
504
原创 codevs 3147 3147 矩阵乘法 2
3147 矩阵乘法 2 2012年 时间限制: 5 s 空间限制: 64000 KB 题目等级 : 大师 Master题解 查看运行结果题目描述 Description给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和。时限已修改为5s,实
2015-09-09 19:48:57
298
原创 codevs 1281 Xn数列
1281 Xn数列时间限制: 1 s空间限制: 128000 KB题目等级 : 大师 Master题目描述 Description给你6个数,m, a, c, x0, n, gXn+1 = ( aXn + c ) mod m,求Xnm, a, c, x0, n, g输入描述 Input Description一行六个数 m, a, c, x0,
2015-09-08 20:14:54
369
转载 二分图 KM算法(求二分图带权值的最大匹配)
先说KM算法求二分图的最佳匹配思想,再详讲KM的实现。【KM算法求二分图的最佳匹配思想】对于具有二部划分( V1, V2 )的加权完全二分图,其中 V1= { x1, x2, x3, ... , xn }, V2= { y1, y2, y3, ... , yn },边具有权值 Wi,j 。该带权二分图中一个总权值最大的完美匹配,称之为最佳匹配。 记 L(x) 表示结点 x 的标记量
2015-08-20 11:25:48
3522
转载 codevs 1227 方格取数 2(最小费用最大流)
题目描述 Description给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij 输入描述 Input Description第一行两个数n,k(1接下来n行,每行n个数,分别表示矩阵的每个格子的数输出描述 Output Description一个数,为最大和样例输入 Sample Input
2015-07-21 14:55:11
409
原创 1059: [ZJOI2007]矩阵游戏 (匈牙利)
Description小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏。矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作:行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色)列交换操作:选择矩阵的任意行列,交换这两列(即交换对应格子的颜色)游戏的目标,即通过若干次操作,使得方阵的主对角线(左上
2015-07-20 07:52:42
877
原创 1057: [ZJOI2007]棋盘制作(悬线法)
Description国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。而我们的主人公小Q,正是国际象棋的狂热爱好者。作为一个顶尖高手,他已不满足于普通的棋盘与规则,于是他跟他的好朋友小W决定将棋盘扩大以适应他们的新规则。小Q找到了一张由N*M个正方形的格子组成
2015-07-19 11:16:53
562
原创 1055: [HAOI2008]玩具取名
Description某人有一套玩具,并想法给玩具命名。首先他选择WING四个字母中的任意一个字母作为玩具的基本名字。然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够扩充得很长。现在,他想请你猜猜某一个很长的名字,最初可能是由哪几个字母变形过来的。Input第一行四个整数W、I、N、G。表示每一个字母能由几种两个字母所替代。接
2015-07-17 11:59:17
391
原创 1042: [HAOI2008]硬币购物(dp+容斥原理)
Description硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法。Input第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,sOutput每次的方法数Sample Input1 2 5 10 23
2015-07-17 09:55:54
506
原创 1021: [SHOI2008]Debt 循环的债务
DescriptionAlice、Bob和Cynthia总是为他们之间混乱的债务而烦恼,终于有一天,他们决定坐下来一起解决这个问题。不过,鉴别钞票的真伪是一件很麻烦的事情,于是他们决定要在清还债务的时候尽可能少的交换现金。比如说,Alice欠Bob 10元,而Cynthia和他俩互不相欠。现在假设Alice只有一张50元,Bob有3张10元和10张1元,Cynthia有3张20元。一种比较
2015-07-16 15:30:50
980
原创 1052: [HAOI2007]覆盖问题(贪心)
Description某人在山上种了N棵小树苗。冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L*L的正方形塑料薄膜将小树遮起来。我们不妨将山建立一个平面直角坐标系,设第i棵小树的坐标为(Xi,Yi),3个L*L的正方形的边要求平行与坐标轴,一个点如果在正方形的边界上,也算作被覆盖。当然,我们希望塑料薄膜面积越小
2015-07-14 13:54:16
416
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人