模板
文章平均质量分 54
Todobe
two funny foolish men
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
费用流 模板【SDOI2009】bzoj1877 晨跑
费用流:在网络流的边上加上一个费用值,在保证最大流的基础上,使这个费用最小。 实现方法:把dinic的bfs改成用费用跑spfa,dfs过程改成单一路径修改。模板代码如下(变量解释在代码后):bool spfa(){ queue<int> V; memset(f,0x1f,sizeof(f)); memset(road,0,sizeof(road)); V.pus原创 2016-12-28 21:49:07 · 450 阅读 · 0 评论 -
旋转卡壳 模板 【poj2187】Beauty Contest
旋转卡壳,kake?qiake?kaqiao?qiaqiao? 一番研究过后,发现旋转卡(qia)壳(ke)是比较正确的读法(也是我最难受的读法QAQ) 旋转卡壳是在凸包上求两个距离最远的点。 具体做法就是枚举凸包上的没一条边,然后找到凸包上离它最远的点计算距离。如果我们顺序枚举凸包上的边,那么离它最远的那个点也一定是沿着凸包顺序转动的,所以只要维护一下这个点在哪个位置就可以了,扫一遍这个凸包原创 2017-02-25 21:42:27 · 1435 阅读 · 0 评论 -
回文自动机 模板 bzoj3676【Apio2014】回文串
题目描述: 考虑一个只包含小写拉丁字母的字符串s。 我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最大出现值。题目分析:(回文自动机) 问:原创 2017-04-12 19:13:44 · 506 阅读 · 0 评论 -
动态树LCT 模板
题目描述: 输入: 第一行两个整数n和m; 接下来一行中n个整数表示初始点权; 接下来m行每行一个操作如上表所示。输出: 对于每一个连接操作,若p和q不连通,输出YES,并添加这条边;否则输出NO; 对于每一个删除操作,若p和q间有边,输出YES,并删除这条边,否则输出NO; 对于每一个查询最大及查询和原创 2017-04-04 15:28:32 · 836 阅读 · 0 评论 -
FWT 模板
传送门传送门:FWT知识htt点详解 传送门:Pick’s Blog(我用的板子都是非递归的QAQ,可能是非递归的FFT写的比较顺手吧)&运算void Fast_Walsh_Hadamard_Transform(LL x[],int len,int mode)//&运算{ for(int i=2;i<=len;i<<=1) { int step=i>>1;原创 2017-04-17 17:08:51 · 1853 阅读 · 0 评论 -
最小表示法 模板【poj1509】Glass Bead
题目大意: 给定一个循环字符串,求这个字符串字典序最小的开始位置。题目分析:(最小表示法)详解传送门 这个做法简单的来说用两个指针就是从头开始暴力比较,答案劣的就往后跳,跳到失配位的下一个,直到其中一个跳出这个串结束。注意: 当两个指针位置相同的时候,把其中一个++。代码如下:#include <cstdio>#include <cstring>#define N 120000using原创 2017-04-05 19:52:47 · 444 阅读 · 0 评论 -
splay 新模板 【bzoj3223】 文艺平衡树
上次写splay拿noi2015维修数列来练手,当时觉得自己写得还挺好的,但是后来发现那个模板居然不能拿来写LCT(其实应该也可以写的,但是我是蒟蒻,我不会)。所以又发愤图强,去各大神犇博客中学习,终于写出了新的模板。与之前的不同: 1、设虚节点,可以降低崩溃的几率; 2、旋转和splay等函数不需要打引用; 3、splaying用循环的方式,代替原来递归的方式,省空间。注意事项: 1、在写原创 2016-12-26 10:02:13 · 683 阅读 · 0 评论 -
线性基 模板 bzoj2460 【BeiJing2011】 元素
题目大意: 有许多矿石,矿石有编号和价值两种属性,我们要求一个集合,使得该集合任意子集编号异或和不为0,并且要求价值和尽量大。题目分析: 先科普线性基。 线性基是我们构造出一个集合,这个集合中的所有元素能相互异或能得到原集合中任意子集异抑或和。 当然我们构造出的线性基是具有一些优秀性质的。 线性基中的元素只有二进制位数个。 其中第i个元素ins[i]代表用所有数能异或出的最高位为第i位的原创 2017-05-01 18:56:31 · 1059 阅读 · 2 评论 -
bzoj1061 [Noi2008]志愿者招募 单纯形(模板)
题目大意: 有n天,m种志愿者。 每天需要ai个志愿者,雇佣每种志愿者的费用为ci,每个志愿者可以在Si天到Ti天工作。 问最小花费。题目分析: 题解PoPoQQQ.html 单纯形wyfcyx.pdf据说这道题网络流神题,单纯形裸题首先我们根据题意 设第i天需要xi个志愿者。 Ai,jA{_i,_j}代表第j个人可以在第i天工作。 bib{_i}代表第i天需要的人数。 cic{_原创 2017-06-21 21:27:47 · 570 阅读 · 0 评论 -
Manacher 模板 【bzoj2565】 最长双回文子串
Manacher是一种可以获得一个串以每一个位置为中心最长回文半径的算法。 它的主要思想就是利用已知的信息来减少获得新信息的不必要操作。 已知的信息就是已经求出的回文串,比如这张图,我们已知黑色部分是一个回文串。 我们要求以红色中点位置为中心的回文串。 假设我们红色部分就是答案,那么在黑色回文串的左边一定有一个跟红色部分一模一样的串,并且红色中点的答案就等于蓝色中点的答案,这样我们就可以原创 2017-02-25 21:11:02 · 441 阅读 · 0 评论 -
凸包 模板【uva10652】Board Wrapping
题目大意: 给定一些矩形,要求用面积最小的凸多边形覆盖这些矩形,求所有矩形占凸包面积百分比。题目分析: 很显然就是把所有的矩形的顶点放在一起做个凸包求个面积就好了(本来这道题就是拿来写板子的啊)。 这个题唯一恶心的地方就是给矩形的方式丧心病狂,它给出了矩形的中心坐标,长,宽,和倾斜角(而且还TM是角度制)。 所以要把这个东西转成弧度制,再用数学知识推导(倒)这个矩形四个顶点的坐标。其实本来没原创 2017-02-14 14:05:25 · 396 阅读 · 0 评论 -
Splay 模板【NOI2005】 bzoj1500 维修数列
老师说写博客有助于学习和理解代码,所以从今天起,做一个写博客的人,面朝代码,春暖花开o(n_n)o。Splay是一种可以对一个数列进行区间修改,区间反转,查询最值,查询总和等操作的数据结构(我觉得Splay的结构类似于treap,功能类似于线段树),而且能够快速实现区间的分裂与合并。Splay与Treap的最大区别是旋转方式,Treap将树按照堆得形式维护,只需要单旋。而S原创 2016-12-10 22:54:52 · 534 阅读 · 0 评论 -
网络流 模板【Usaco2007 Open】bzoj1711 Dining吃饭
网络流 网络流通常有一个源点,一个汇点,和其他若干点,这些点之间有若干条有向边,每条边上有一个负载上限,称为容量。题目通常要求我们求出在所有边容量允许的范围内,从源点到汇点流量的最大值。 一般情况下,网络流都不会很难写,网络流题目大多数都难在建图上。dinic算法: step1: bfs给所有有可行流的点标号,建立层次网络,源点标为1,将所有能标的点标完或标到汇点结束; step2: 如原创 2016-12-28 19:27:28 · 501 阅读 · 0 评论 -
快速傅里叶变换 FFT 模板【bzoj2179】 FFT快速傅立叶
你眼中看似落叶纷飞变化无常的世界,实际只是躺在上帝怀中一份早已谱好的乐章。 ——韩昊正常人在观察这个世界都是已时间为参照,就比如声音,最简单的声音在物理中的理解就是: 这样一条以时间为横轴的美美哒的正弦函数。那什么是频域呢?那就是忽略掉时间来观察这个世界咯。 要如何忽略掉原创 2017-01-07 20:53:22 · 1125 阅读 · 0 评论 -
后缀自动机 模板 【Poi2000】 公共串 bzoj 2946
后缀自动机按照哲学中是什么怎么做为什么的思路,我们来理解一下后缀自动机。是什么后缀自动机就是能识别所有的后缀(当然就能顺便识别所有后缀的前缀,就是子串了)的自动机。 它能做什么呢? 它能做字符串问题啊…… 比如什么求公共前缀啊,求有多少个本质不同的公共子串,当然它很多时候都和LCT搭配使用,能做的事情就更多。 什么用后缀数组啊,KMP啊啥的能做的题它好像都能做,用后缀树能做的题它也能做!(比原创 2017-01-16 20:26:32 · 900 阅读 · 0 评论 -
可持久化线段树 模板 【bzoj3932】任务查询系统
人的运势就如同一条正弦曲线不断波动起伏。如果你觉的你一直在走下坡路,那只能说明,你还没有到达最低点。 ——Todobe题目大意: 给m个任务,第i个任务从si秒持续到ei秒,有权值pi。 有n次查询,询问第x秒前k小的权值和。 强制在线。题目分析: 如果可以离线的话只需要把修改和查询排个序正常权值线段树就好。 但是这是在线的,所以我们就让这个线段树……更持久(持久化)。我们原创 2017-01-04 17:10:01 · 593 阅读 · 0 评论 -
后缀数组 【TJOI2013】 bzoj3172 单词
题目大意: 给定一些单词,这些单词组成一篇文章(单词与单词之间有空格),问每个单词在这篇论文中出现多少次。题目分析: 可以再单词与单词之间插分隔符,然后用后缀数组来排序,但是排完也没有什么用,并不能用这个序列来做什么。 但是我们发现,前缀相同的后缀一定被排到一块了,所以我们可以利用这个性质来解决问题。 引入一个数组height,height[i]代表排名为i的后缀与排名为i-1的后缀的最长公原创 2016-12-28 09:32:23 · 647 阅读 · 0 评论 -
后缀数组 模板【JSOI2007】 bzoj1031 字符加密Cipher
后缀数组 处理多个字符串用AC自动机就很方便了,但是AC自动机需要空间巨大,很可能爆内存,后缀数组被引入了。后缀数组主要是两个数组 第一个是sa数组,sa[i]代表排名为i的后缀的首字母的位置; 第二个是rnk数组,rnk[i]代表首字母位置为i的后缀的排名。最先要做的就是求出这两个数组。 其实有很简单的办法,那就是把后缀sort一下,拍个序,统计一下排名,万事大吉。 如果时间复原创 2016-12-28 08:51:34 · 637 阅读 · 0 评论 -
AC自动机 模板 【HDU2222】 Keywords Search
AC自动机(Aho Corasick Automaton) 如果匹配字符串,一个模式串,一个匹配串,KMP就搞定了。 但是如果现在有多个模式串怎么办呢?每个模式串都处理一遍,再与匹配串匹配就太慢了,所以有了AC自动机,来解决这类问题。AC自动机可以看成是Trie树和KMP的结合体,具体的实现方式就是在每个节点处增添一个fail指针,作用与KMP中的失配时用的跳转数组差不多(虽然在匹配的大多数时候原创 2016-12-27 18:00:41 · 477 阅读 · 0 评论 -
KMP 模板+简单讲析 【HDU2087】 剪花布条
KMP 处理字符串匹配,暴力枚举O(n*n)是很好写的,但是很多题目接受不了这样的时间复杂度,然后KMP算法诞生了。举个例子先: 模式串:abb 匹配串:ababb 匹配到第三个字符时失配了,如果是暴力匹配这时我们又会用模式串的第一个a来匹配匹配串的第二个b,这显然是很多余的操作,因为不可能匹配成功。这样浪费了巨量的时间,KMP算法则是用O(n)的时间来处理一下模式串,从而使匹配更有效率。那原创 2016-12-27 17:29:55 · 461 阅读 · 0 评论 -
bzoj4519 [Cqoi2016]不同的最小割 分治最小割 模板
题目大意: 给一张图,求任意两点最小割有多少不同的值。题目分析: 分治最小割的模板题。 分治最小割可以在O(n次网络流+n^2)的时间复杂度求出任意两个点之间的最小割。 我也不知道为什么但是这么做是对的QWQ。对于分治的序列,随便选择两个点作为源点和汇点,跑一遍网络流。 在S和T之间连一条流量为最小割的边。 然后和S连通的点分到左边,剩余的点分到右边,递归下去。 这样做我们会做n-1次原创 2017-06-27 18:00:21 · 485 阅读 · 0 评论
分享