自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SAM的性质与应用

鸣谢clover_hxy学姐之前介绍过SAMSAMSAM的构建 打算做点题练习一下,但是找到SAMSAMSAM的裸题之后,根本不知道怎么用SAMSAMSAM搞 所以就来总结一下SAMSAMSAM的应用找不同的子串的个数方法一:用dfs处理处每个点能扩展出多少个字符串sum[x]=∑sum[t[x].son[i]]+1sum[x]=∑sum[t[x].son[i]]+1sum[x...

2018-01-28 16:43:42 1199

原创 char类型函数(C++入门?)

前几天测试,本来想用char自带的函数 然而发现自己并不是很会。。。1.0 复制1.1 strcpy原型:char* strcpy(char* dest, char* src); 功能:把从src地址开始且含有 ‘\0’结束符的字符串复制到以dest开始的地址空间 返回指向dest的指针 说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳

2018-01-08 17:50:00 16349 1

原创 虚树

前言: 舒老师表示虚树不用学,但是看到ZYX在看,所以就了解一下吧引入有这样一类问题:给出一棵n" role="presentation" style="position: relative;">nnn个结点的树(n" role="presentation" style="position: relative;">nnn为1e5级别),每次指定m" role="presentatio

2018-01-31 21:25:33 1384

原创 日常(纪念舒老师)

今天得到消息舒老师成功进入冬令营面试,举国欢庆!!!下面我们就来一期%舒特别篇:C_T:舒老师马上就可以上北大了,听说可以签20分 xp:20分,舒老师会签吗 虚泽:签完了当面撕毁:你瞧不起我swt 虚泽:舒老师:对不起,我填个零(20 —> 200) ZYXZYXZYX:20分只有你能考上吧(指C_T) C_T:。。。 C_T:舒老师:你要是给我签一本线,我附赠给你一个...

2018-01-31 16:30:16 348

原创 bzoj2806 [Ctsc2012]Cheat(单调队列优化dp+二分+广义SAM)

题目链接分析: 一看到这种最大值的问题,冥冥之中可以感知到是二分在召唤我们我们把所有的标准串扔到SAM" role="presentation" style="position: relative;">SAMSAMSAM里,建出一个广义后缀自动机 二分一个L" role="presentation" style="position: relative;">LLL,用dp判断可行性 怎

2018-01-31 15:42:28 260

原创 bzoj4032 [HEOI2015]最短不公共子串(字符串dp+SAM)

题目链接分析: 字符串dp四合一 比较神的一道题,一开始只会搞第一问 然而发现自己的方法不是很靠谱First.A子串≠B子串实际上就是求两个串的最长公共子串 f[i][j]" role="presentation" style="position: relative;">f[i][j]f[i][j]f[i][j]表示A序列第i" role="presentation" st

2018-01-31 09:50:57 318

原创 bzoj4180 字符串计数(SAM+二分+矩阵加速dp)

题目链接分析: 问题建立在字符串的子串上 而SAMSAMSAM包含了字符串的所有子串,所以可以往这个方向考虑一开始我设计的状态:f[i][j]f[i][j]f[i][j]表示第iii位是字符jjj,用的最大步数 然后我就很直接的想到,在转移的时候可以找到以jjj为起点的子串(j,...,k):len(j,...,k):len(j,...,k):len f[i+len−1][k]=m...

2018-01-30 20:44:46 393

原创 bzoj2780 [Spoj]8093 Sevenk Love Oimaster

题目链接分析: 我一开始的想法比较简单,建出SAMSAM,每个结点记录有多少串使用了这个结点,直接匹配即可 结果竟然T了,按理来说也应该是WA啊在看学姐的blog的时候,发现实际上就是这么搞:我们直接用朴素的方法构建好SAMSAM 我们对每一个结点另开一个数组ll,表示当前每个结点属于哪个字符串 同时记录结点在多少个字符串中出现过:cntcnt 在构建完结点之后,我们从nownow开始往p

2018-01-30 15:56:36 261 2

原创 bzoj3926 [Zjoi2015]诸神眷顾的幻想乡

题目链接分析: 先强调一点,题目中特意指出:太阳花田的结构比较特殊,只与一个空地相邻的空地数量不超过20个 翻译一下:最多有20个叶结点知道这道题是用广义后缀自动机解决 广义SAMSAM中包含了所有互异的子串 所以我们应该把尽量少,但是包含所有情况的字符串扔进SAMSAM中一开始我想的比较简单,只要把所有叶结点到根的字符串扔进去就可以了 但是这样显然包括所有的字符串情况(画个图就知道了,没

2018-01-30 11:01:32 205

原创 广义后缀自动机

之前简单介绍了SAMSAMSAM 朴素的SAMSAMSAM是针对一个字符串建立的 那么该如何对多个串建出后缀自动机呢?这个就叫广义后缀自动机首先我们考虑一个暴力的建造方法, 就是每次建完一个串以后就把last指针移到root上面,接着建下一个串发现时间复杂度其实依旧是O(n)O(n)O(n),而且匹配也不会出现啥问题。但是这样新加入一个点的时候可能已经有这个转移了,那该怎...

2018-01-30 09:00:26 536

原创 字符串最小表示法

最近做到bzoj2882这道题 因为最近在学SAMSAM,所以一秒SAMSAM做法 但是在用SAMSAM的时候,由于结点数较多,我们要用mapmap存储SAMSAM,用iteratoriterator遍历SAMSAM 主要是博主比较弱,这些STLSTL的工具基本都不会用,在网上找解决方法的时候,发现大部分解法都是用了一个新算法:字符串最小表示法O(n)算法字符串的最小表示法对于一个长度为n的字

2018-01-29 21:47:42 566

原创 bzoj2882 工艺(SAM【iterator)

题目链接分析: 很简单啊,我们在原串后面再复制一遍原串 得到的就是环状的数串 利用这个串建立SAM" role="presentation" style="position: relative;">SAMSAMSAM,直接在SAM" role="presentation" style="position: relative;">SAMSAMSAM上找最小的子串即可但是有一个小问题,这

2018-01-29 20:17:58 413

原创 SPOJ7258 SUBLEX - Lexicographical Substring Search(SAM第K大)

题目链接分析: SAM" role="presentation" style="position: relative;">SAMSAMSAM求第K" role="presentation" style="position: relative;">KKK大子串首先我们建出SAM" role="presentation" style="position: relative;">SAMSAMS

2018-01-29 19:00:26 262

原创 全场六零赛(1.29)

T1【题目描述】 吾乃闪耀知识的灯塔。 B 君有个n个点,m个边的仙人掌。所谓仙人掌,就是任何一个点至多属于一个环。 每条边有 1/2 的概率被删掉。问期望剩下多少个边联通块。所谓边联通块,就是问剩下的边,构成多少个联通块,单独一个点不算做联通块。 B君不喜欢实数,B君想知道答案乘以2m" role="presentation" style="position: relative;">

2018-01-29 16:45:07 327

原创 bzoj3998 [TJOI2015]弦论(SAM)

Description对于一个给定长度为N的字符串,求它的第K小子串是什么。Input 第一行是一个仅由小写英文字母构成的字符串S第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位置的相同子串算作多个。K的意义如题所述。Output输出仅一行,为一个数字串,为第K小的子串。如果子串数目不足K个,则输出-1Sample Inputaabc0 3Sample Out

2018-01-29 15:20:19 214

原创 SPOJ1812 LCS2 - Longest Common Substring II(SAM)

题目链接分析: SAM求多串最长公共子串 详解戳这里#include#include#includeusing namespace std;const int N=100002;int dis[N1],ch[N1][26],fa[N1],len,root=1,last=1,sz=1;int l[N1],c[N1],pos[N1],mn[N];char s[N];v

2018-01-28 20:02:49 184

原创 bzoj2946 [Poi2000]公共串(SAM)

Description给出几个由小写字母构成的单词,求它们最长的公共子串的长度。任务:读入单词 计算最长公共子串的长度输出结果 Input 文件的第一行是整数 n,1,表示单词的数量。接下来n行每行一个单词,只由小写字母组成,单词的长度至少为1,最大为2000。 Output仅一行,一个整数,最长公共子串的长度。 Sample Input3 abcb bca acbc

2018-01-28 19:34:11 346

原创 cv3160 最长公共子串(SAM)

题目链接分析: A" role="presentation" style="position: relative;">AAA串建立一个SAM" role="presentation" style="position: relative;">SAMSAMSAM 用B" role="presentation" style="position: relative;">BBB串在SAM" role

2018-01-28 15:50:30 421

原创 hdu3311 Dig The Wells(斯坦纳树dp)

题目链接分析: 斯坦纳树第一次写,非常费劲因为每个寺庙只需找到一口井,也就是寺庙的位置到井的位置只需一条路,所以我们的最后的最优解一定得到的是一棵树 但是朴素的斯坦纳树是没有点权的,我们可以增加一个0点来连接所有的点,其边权就是挖井的花费按上面的思路套个斯坦纳树模版 ans=min(cost[i][(1<<(n+1))−1])(i<=i<

2018-01-28 14:40:48 364

原创 poj1752 Advertisement(差分约束)

题目链接分析: 看到这道题,我的反应就是线性规划 我一开始把问题抽象成: 给出一条数轴和n个区间,在数轴上选取尽量少的数,使得每个区间内都有K个数被选中 经过转化后,这道题就和bzoj3550一样了 但是这道题的数据范围有点大,所以我们要另辟蹊径设dis[i]" role="presentation" style="position: relative;">dis[i]dis[i

2018-01-28 09:56:06 306

翻译 poj1752 Advertisement(翻译)

译文题目描述娱乐部门已经下定决心要增加盈利,因此决定在当地公园的一条很火的慢跑道上出售广告牌。他们已经在这条道路上建造了许多广告牌,并决定出售在这些广告牌上的广告空间。在慢跑道上,广告牌是均匀分布的,慢跑路径一定一段连续的整数。一个广告牌上只能登出一个广告。有一天,一位VIP客户想购买一些广告牌,但是需要保证每个慢跑者在沿着小路跑步时都会看到K次ta的广告。 然而,不同的慢跑者会...

2018-01-26 15:40:36 560

原创 hdu3666 THE MATRIX PROBLEM(差分约束||乘除变加减)

题目链接分析: 从题面能得到: L<=C[i][j]∗a[i]b[j]<=R" role="presentation" style="position: relative;">L=C[i][j]∗a[i]b[j]=RLC[i][j]∗a[i]b[j]RL我们需要确定的是a" role="presentation" style="position: relati

2018-01-26 14:59:48 239

原创 斯坦纳树 Steiner Tree

前言: 以前在看学姐blog的时候,发现在动态规划中有一个叫斯坦纳树的部分前辈的blog 论文斯坦纳树斯坦纳树问题是组合优化问题,是最短网络的一种 其实最小生成树是最小斯坦纳树的一种特殊情况 最小生成树是在给定的点集和边中寻求最短网络使所有点连通 而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销最小问题的提出平原上的三个城镇间要兴建一个公用的煤气...

2018-01-25 21:55:39 33641 2

原创 hdu3440 House Man(差分约束)

题目链接题意: 有N个在一条直线上的房子,每个房子有着不同的高度, 一个超人可以将这些房子左右移动但不能改变房子之间的相对位置 现在超人要从最矮的房子跳到刚好比他高的房子上面,且每次跳的房子都要比当前房子要高 最后超人肯定会跳到最高的房子上面,现在给出超人能够跳的最远距离, 问: 如何摆放这些房子,使得超人能够经过所有的房子跳到最高的房子,又要使最矮的房子和最高的房子之间的距离最

2018-01-25 21:33:07 324

原创 poj3169 Layout(差分约束【关于线规的思考)

题目链接分析: 差分约束系统,我们用Bellman解决LIKE:xi−xj<=z,xi<=xj+z" role="presentation" style="position: relative;">xi−xj=z,xi=xj+zxi−xjz,xixj+zx_i-x_jDISLIKE:xi−xj>=z,xj<=xi−z"

2018-01-25 17:34:30 210

原创 bzoj3118 Orz the MST(单纯形)

Description给出一个带权的连通无向图,对于其中的每条边i,在原来边权的基础上,其边权每增加1需要付出的代价为Ai,边权每减少1需要付出的代价为Bi,现在指定该图的一棵生成树,求通过修改边权,使得该生成树成为图的一棵最小生成树,需要付出的最少总代价。 Input第一行两个正整数N, M,表示图的点数和边数,点以1~N编号;接下来M行,每行六个正整数Ui, Vi, Wi, FFi, Ai

2018-01-25 16:31:40 296

原创 bzoj3550 [ONTAK2010]Vacation (单纯形|网络流)

Description有3N个数,你需要选出一些数,首先保证任意长度为N的区间中选出的数的个数Input第一行两个整数N,K。第二行有3N个整数。Output一行一个整数表示答案。Sample Input5 314 21 9 30 11 8 1 20 29 23 17 27 7 8 35Sample Output195HINT【数据

2018-01-24 22:02:04 651

原创 bzoj3112 [Zjoi2013]防守战线(单纯形)

题目描述 Description战线可以看作一个长度为 n 的序列,现在需要在这个序列上建塔来防守敌兵,在序列第 i号位置上建一座塔有 Ci 的花费,且一个位置可以建任意多的塔费用累加计算。有 m个区间[L1, R1], [L2, R2], …, [Lm, Rm],在第 i 个区间的范围内要建至少 Di座塔。求最少花费。输入描述 Input Description第一行

2018-01-24 21:32:03 245

原创 bzoj3265 志愿者招募加强版(单纯形)

DescriptionInputOutputSample Input3 3 2 3 41 1 2 21 2 3 51 3 3 2Sample Output14分析: 单纯形算法因为题目中要求的是最小值,并且约束条件是大于等于 所以我们要构建原线性规划的对偶图实际上对偶图十分好构建: 将系数矩阵转置一下,就是a[i

2018-01-24 20:45:28 346

原创 线性规划之二 —— 单纯形算法(详解)

鸣谢dalao的教导单纯形算法是求解线性规划的经典方法 虽然ta的执行时间在最坏的情况下并不是多项式,然而在实际中这个算法通常是相当快速的实际上也非常简单,主要就三个步骤:找到一个初始的基本可行解不断的进行旋转(PIVOT)操作重复第二步直到结果不能改进为止单纯形算法的一个例子考虑下面这个标准型的线性规划: 最小化: −x1−14x2−6x3−x1−14x2−6x...

2018-01-24 19:46:21 5815 1

原创 线性规划之一 —— 引入和基本概念(乌拉拉)

鸣谢: 1. 细语呢喃 2. 算法导论什么是线性规划?只要上过高中的人都知道:定区间,画直线,求最值? 今天我们说的线性规划,可以说是高中课本中内容的升华↓ 定义 在给定有限的资源和竞争约束情况下,很多问题都可以表述成最大化或最小化某个目标 如果可以把目标指定为某些变量的线性函数,而且如果可以将资源约束指定为这些变量的等式或不等式,则得到了一个线性规划问题很学术是吧,不喜

2018-01-23 21:51:16 768

原创 bzoj1061 [Noi2008]志愿者招募(费用流)

Description申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要N 天才能完成,其中第i 天至少需要Ai 个人。 布布通过了解得知,一共有M 类志愿者可以招募。其中第i 类可以从第Si 天工作到第Ti 天,招募费用是每人Ci 元。新官上任三把火,为了出色地完成自己的工作,布布希望

2018-01-23 19:11:13 322

原创 poj3195 Candies(差分约束)

题目链接分析: 差分约束的模版tip以前在学差分约束的时候,记得必须建一个虚拟源点,连向所有的结点,做多源最短路 但是这道题却没有,我就有点纳闷了 仔细想了想,可能建立虚拟源点的作用是避免出现负环,这道题不会有负边权,所以直接单源最短路即可在写Bellman的时候,一开始我直接用STL,结果T掉了 那就手写队列吧,写完了却一直RE 实在没办法,看了一下学姐的做法:把队

2018-01-23 16:12:06 207

原创 bzoj4861 [Beijing2017]魔法咒语(AC+矩阵优化dp)

DescriptionChandra 是一个魔法天才。从一岁时接受火之教会洗礼之后,Chandra 就显示出对火元素无与伦比的亲和力,轻而易举地学会种种晦涩难解的法术。这也多亏 Chandra 有着常人难以企及的语言天赋,让她能轻松流利地说出咒语中那些极其拗口的魔法词汇。直到十四岁,开始学习威力强大的禁咒法术时,Chandra 才遇到了障碍。根据火之魔法规则,禁咒的构成单位是 N 个基本词汇。施法时

2018-01-22 17:31:11 491

原创 poj2234 Matches Game(SG)

题目链接分析: 这道题就是NimNim游戏 在Nim游戏中,因为我们可以从一堆中取任意数量的元素,所以SG(x)=xSG(x)=x(不能不取) 直接计算NimNim值即可 不知道我在说什么的朋友戳这里如果NimNim值等于00,那么先手必败 (不好记的话可以想一下:如果当前面对的是没有元素的局面,先手是胜还是败呢)#include<cstdio>#include<cstring>#in

2018-01-21 11:26:53 224

原创 hdu1848 Fibonacci again and again(SG)

题目链接分析: SG函数的入门题 因为数据范围比较小,我们可以直接暴力计算SG函数#include<cstdio>#include<cstring>#include<iostream>using namespace std;int f[15]={1,2,3,5,8,13,21,34,55,89,144,233,377,610,987};int SG[1002],S[1002],n,m,p;

2018-01-21 11:15:35 185

原创 poj3694 Network (LCT+并查集 | tarjan+树链剖分)

DescriptionA network administrator manages a large network. The network consists of N computers and M links between pairs of computers. Any pair of computers are connected directly or indirectly by

2018-01-21 10:39:56 282

原创 SG函数和SG定理

大神链我们先用一个简单的例子引入: 考虑有这样一个游戏,有3堆火柴,分别有a,b,c根,记为(a,b,c) 每次一个游戏者可以从任意一堆中拿走至少一根火柴,也可以整堆拿走,但是不能从多堆火柴中拿 无法拿火柴的人输 这个游戏就叫做Nim游戏举个例子,假设a=1,b=2,c=3,若你先拿,你会怎么办呢? 方案一:(1,2,3)—->(0,2,3),然而只要对手把状态变成(0,2,2)

2018-01-21 08:38:23 2706

原创 组合数学之六 —— 差分序列&Stirling数

前言:好久没有学数学了 前几天loli给高一的讲课涉及到了本章内容,所以来普及一波差分序列基本概念设 是一个序列,我们定义的(一阶)差分序列为: 很简单吧,就是我们经常使用的差分啊 但是我们在叙述ta的定义的时候,加了一个词:一阶 有一阶就有二阶,有二阶就有三阶~ppp阶啊: ppp阶差分序列: 我们定义一个序列的0阶差分序列就是ta自己:我们可以把一个序...

2018-01-20 21:33:56 6464

原创 bzoj2959 长跑(LCT+并查集)

Description  某校开展了同学们喜闻乐见的阳光长跑活动。为了能“为祖国健康工作五十年”,同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑运动。一时间操场上熙熙攘攘,摩肩接踵,盛况空前。  为了让同学们更好地监督自己,学校推行了刷卡机制。  学校中有n个地点,用1到n的整数表示,每个地点设有若干个刷卡机。  有以下三类事件:  1、修建了一条连接A地点和B地点的跑

2018-01-20 17:48:39 389

空空如也

空空如也

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

TA关注的人

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