自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

A_Comme_Amour的博客

如果你认为曾经的你很辉煌,那只能说明现在的你混的还不够好。

  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 [BZOJ 1966] [Ahoi2005]VIRUS 病毒检测(Trie / dp)

题目传送门题解方法一:trie树 标签是AC自动机,但明显不是AC自动机啊,根本没有失配指针的过程,只能叫Tire树吧 我们对每一个单词建立好Tire树之后,在树上进行bfs,进行匹配代码#include <cstdio>#include <cstring>#include <bitset>using namespace std...

2018-04-24 17:08:03 426

原创 [BZOJ2938][POI2000]病毒(AC自动机+dfs)

题目传送门题解这是一道比较锻炼思维的题,让我更加深的理解失配指针的作用 一般的AC自动机都是尽量多的匹配,这道题希望无限长,也就是希望能失配就失配,我们构造出trie树之后,在trie图(注意现在变成了一个图)上找环即可; 几点优化:根据trie树的性质.如果某个点的后缀是病毒,那么这个点肯定不能选 在dfs中,建立两个bool数组,一个需要回溯——用于在这条路径上找环,另一个不...

2018-04-22 16:21:27 377

原创 [BZOJ3172][Tjoi2013]单词(AC自动机)

题目传送门题解AC自动机 AC自动机第一题,感觉做起来非常不顺,感觉难点在于处理单词重叠的问题 大体的思路应该是,我们把每个单词出现的字母在fail树上进行累加,然后建立bfs序,把单词的字母的ans累加到单词的第一个字母上(应该是这样吧?),输出答案; 另一种实现方法:这是我刚开始想到的,在每个单词之间添加一个'#''#''#'分隔组成文章,在处理重叠单词上:我们的mp[k...

2018-04-22 14:32:30 325

原创 [BZOJ4516][Sdoi2016]生成魔咒(后缀数组+链表)

题目传送门题解这道题还是比较好的; 要求出每一个前缀本质不同的后缀的个数,那么我们可以把原序列倒过来,然后实际上就是对于每一个后缀求与其它后缀不重复的前缀个数,也即是后缀长度减去height值; 求出某一个后缀对答案的贡献之后,他不应该停留在元序列中对后续答案的求解产生影响,所以应该把它删除; 在实现方式上,可以使用链表,与平衡树的操作有些类似代码#inclu...

2018-04-18 12:37:09 521

原创 [bzoj4566][HAOI2016]找相同字符(后缀数组)

题目传送门题解这里:把两个串用一个很大的字符连接起来,求一个后缀数组。 考虑怎样暴力的算答案。 在rank rankrank数组中从前往后枚举起点,对于每个枚举的起点,都暴力的往后扫,扫的过程中维护一个height heightheight的最小值。每到一个点的时候,如果这个点跟起点不属于一个串,就将答案加上当前的最小值,这样是O(n2)的考虑这个还能怎...

2018-04-17 22:19:12 339

原创 [BZOJ1031] [JSOI2007]字符加密Cipher(后缀数组)

题目传送门题解裸 加密序列为所有排列排序之后的最后一个字符 把环展成链,统计答案的时候注意判断在一条链内即可代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const i...

2018-04-17 22:13:24 254

原创 [BZOJ3238][AHOI2013]差异(后缀数组+单调栈)

题目传送门 题解求一个定值减去所有后缀组合的lcp*2之和 O(n2)O(n2)O(n^2) 枚举所有的1≤i<j≤n1≤i<j≤n1\leq iO(1)O(1)O(1)求出lcp(Ti,Tj)lcp(Ti,Tj)lcp(T_i,T_j);n的范围无法承受 O(Nlog2N)O(Nlog2N)O(Nlog_2N) 根据height[]height[]height...

2018-04-15 09:37:48 335

原创 【BZOJ1717】[Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组+二分)

题目传送门题解求重复至少k次的最长子串长度(可重叠) 求出sa数组和height数组之后,二分出一个长度,判断height数组中大于这个值的数是否有k个代码#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using ...

2018-04-14 22:05:06 459

原创 [IOI1994]北京2008的挂钟(搜索)

题目传送门Vijos题解这是一道比较经典的搜索题 可见ABCDEFGHI九种方案每种最多使用4次,那么九重for循环枚举出出组合情况即可代码#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace...

2018-04-14 06:43:57 1310 1

原创 [BZOJ 1217] [HNOI2003]消防局的设立(贪心/dp)

题目传送门题解方法一:贪心 对于深度最深的点,肯定需要设置消防站来覆盖它,那么消防站的选取就有多种方案:父亲。祖父。兄弟。显然放在爷爷那里是最优的; 那么算法:每次选择一个深度最深且没有覆盖的点,在他的爷爷那里设置 一种巧妙的O(n):我们使用单调栈,按照bfs的顺序入栈(先进后出),那么最后取到的肯定是深度最大的。 方法二:树形dp 这道题和没有上司的舞会、战略游戏是比较像...

2018-04-11 17:15:29 541

原创 NoiOpenjudge水题选刷之_搜索

1789:算24 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。 这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。 比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,对于1...

2018-04-10 22:15:43 838

原创 小a和uim之大逃离(路径dp)

题目传送门 在方格里起点终点任取,两个人绑在一起轮流取数,问有多少种方案可以使两个人取得的数在 %kkk 下相等题解其实这道题是没有思路的。看了题解。 f[i][j][p][k]f[i][j][p][k]f[i][j][p][k] 表示在 (i,j)(i,j)(i,j)处,两个人取的数之差为ppp.此时是第k(0/1)k(0/1)k(0/1)个人取; 初始化:f[i][j][a...

2018-04-09 13:30:58 278

原创 [BZOJ1088][SCOI2005]扫雷(DP/枚举暴力)

题目传送门题解解法一:搜索 我们可以发现,只要第一个位置确定了,下一个就都可以通过右边各自里的数唯一的推出来。 那么结果就只有可能是0、1、2; 那么我们两次chek判断是否合法即可 解法二:dp f [i] [j] [k] 表示第i个位置; j表示有没有地雷 ;k表示下一个位置有没有地雷; 分类讨论的思想,思路比较巧妙;代码代码一;#include &lt...

2018-04-08 22:06:17 390

原创 [游记]SDOI2018R1 游玩记

这次旅行就像是NOIp的翻版。Day -1出发前一天,骗了一下去年的Day1,结果全都爆零,感觉药丸;Day011:30在SLYZ出发,在路上也没有写多少板子,看了看赫胥黎的《美丽新世界》,和《1984》风格差不多,觉得这不是未来的世界而就是现在的世界。 到了核电,酒店还不错。 晚上去试机,感觉电脑用的还顺手,敲了敲Splay也没有测样例就回来了,Refun等队爷都敲了...

2018-04-08 16:04:13 491

原创 写给省选前的自己

提前声明:不喜勿喷省选的前一天晚上,坐在电脑前,写下这些文字。自从寒假里=绝食般抗争回到OI以来,已经浑浑噩噩地度过了两个月,学了一些之前没有见过的算法和数据结构,也算是写过了网络流;我基本上每次hu测都是爆炸,几乎失去信心 ;多项式FFT没有写过数学一窍不通,主席树动态树什么的都不会,后缀数组sa自动机搞不明白,只有时常写Ci的最大流和线段树、Splay等板子。 我没有Gay神...

2018-04-04 23:09:41 478 1

原创 不同子串个数(后缀数组)

题目传送门题解后缀数组的经典应用,重点在于这一句:ans+=(ll)(n-sa[i])-height[i];代码#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;#define l...

2018-04-04 06:45:49 843

原创 「BZOJ1012」[JSOI2008] 最大数(线段树/单调栈)

题目传送门题解写线段树的话太裸了,但是题意非常难搞,认真读题:其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。–>重新赋值从题解上看到一种单调栈的写法觉得非常巧妙 利用了题目的特性:每次都是在最后询问,用单调栈维护,开两个栈一个保存下标,一个保存他的值,在插入的时候把栈中比这个值小的都弹...

2018-04-03 22:15:43 282

原创 「BZOJ1878」[SDOI2009] HH的项链(线段树)

题目传送门题解这种统计种类(颜色)的问题总是很恶心;%%%REfun 首先对于所有询问的区间,按照右端点排序; 我们动态维护一棵线段树;从左到右枚举每个点,枚举到一个点: 1 、我们就把他的位置对应的线段树里加上值: 2、同时我们记录上一个同一个颜色的位置,把这个位置在线段树中删除; 我们判断,当前枚举到的点是否是一个询问区间的右端点(这就是我们为什么按照右端点排序的原因),区间...

2018-04-03 22:08:56 561

原创 [USACO11DEC]牧草种植Grass Planting(树链剖分)

题目传送门题解这道题就是把树链剖分中的点标记改成了边的标记,然后我就不会做了; 我么发现,每一个点对应着多个孩子,但是只有一个父亲,于是我们就可以把某个点到父亲的点的边的权值转移到这个点上; 如何防止把最近公共祖先也标记上,这就是树链剖分的一点小变形,找完连头之后左端点+1; 还是对算法理解的不够深刻。代码#include <cstdio>#include ...

2018-04-01 22:16:42 388

原创 [bzoj1861][Zjoi2006]Book书架(平衡树)

题目传送门题解这道题与其他的平衡树是另一种问题,这里的平衡树里面维护的是编号而不是权值。那么就不能用一般的inset 这样平衡树里面的元素就是无序的,我们怎样才能快速查询一个元素的值Top操作:首先找到原来的位置删除,然后把最左边的点旋转到根,在根的左子树上再插入这个元素.Bottom操作:方法同上Insert操作:我更喜欢叫她是Swap操作,把相邻的两个找出来交换值即...

2018-04-01 22:10:09 275

原创 送花(权值线段树)

题目传送门题解写这道题是为了写权值线段树 看到c的范围比较小,按照C为权值建立线段树,c的值就是线段树的叶子位置; 类似于平衡树的做法,查询最左或最有的节点删除代码#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#inc...

2018-04-01 06:48:38 424

贾志豪《组合游戏略述——浅谈SG游戏的若干拓展及变形》

事实上,这个游戏可以认为是所有ICG游戏的抽象模型。也就是说,任何一个ICG游戏都可以通过把每个局面看成一个顶点,对每个局面和它的子局面连一条有向边来抽象成这个“有向图游戏”。下面我们就在有向无环图的顶点上定义SG(Sprague-Garundy)函数。 SG函数的建立 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0,1,2,4}=3、mex{2,3,5}=0、mex{}=0。 对于一个给定的有向无环图,定义关于图的每个顶点的SG函数sg如下:sg(x)=mex{ sg(y) | y是x的后继 }。也就是说,一个点的SG函数为在它所有后继中都未出现的最小的值。 SG函数的性质 来看一下SG函数的性质。首先,所有的没有出边的顶点,其SG值为0,因为它的后继集合是空集。然后对于一个sg(x)=0的顶点x,它的所有后继y都满足 sg(y)≠ 0。对于一个sg(x)≠ 0的顶点,必定存在一个后继y满足sg(y)=0。 这个时候你就应该有所发现了!SG函数的性质和N,P局面的性质非常相似! 以上表明,顶点x所代表的postion是P-position当且仅当sg(x)=0(跟P-positioin/N-position的定义是完全对应的)。

2018-02-22

空空如也

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

TA关注的人

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