关闭
当前搜索:

【GDOI2017 day1】微信

题目大意:给出20棵trie。每次询问问某几棵trie的子串的lcs。总长小于10^6。题解:已经退役的wyx当时说:“又是裸题,真没意思。”呵呵。可惜初二的我连后缀自动机是什么都不知道,只会那个弱弱的AC自动机。如果没有每次的询问,那么这个跟SPOJ的lcs2没有什么区别,这个只是广义后缀自动机。前一篇博客已经讲过,广义后缀自动机和正常的真的没有毛线区别。现在重点在于每次询问某几棵怎么办?只有20...
阅读(1) 评论(0)

【ZJOI2015】诸神眷顾的幻想乡(广义后缀自动机)

题目大意:有一棵有n个节点的树,每个节点上有一个数字。 求所有树的路径中,所形成的字符串中不同的有多少个。 1<=n<=10^5 叶子节点数小于20。题解:其实我很不解一个裸的不能再裸的题为什么会是ZJOI Day1 的最后一题。也许是因为后缀自动机2012年才提出来吧。首先注意叶子节点数小于20。这启发我们以它们为根,去建树,这样会有20个trie,再合并,就有一棵大tried。现在的问题在...
阅读(5) 评论(0)

【清华集训2017模拟12.10】大佬的难题

题目大意: 1<=n<=2e6,时限:2.5s题解:容斥原理瞎搞。设A,B,C分别为满足三个条件的集合。根据容斥原理,有: A∪B∪C=A+B+C−A∩B−A∩C−B∩C+A∩B∩CA∪B∪C=A+B+C-A∩B-A∩C-B∩C+A∩B∩C而A∪B∪C同时会等同于总数n∗(n−1)n*(n-1)-都大于的个数(即都小于的个数A∩B∩CA∩B∩C)所以: n∗(n−1)−A∩B∩C=A+B+C−...
阅读(51) 评论(0)

hdu 4622 Reincarnation

原题链接.题目大意:给出一个字符串。 求它的一个子串的不同子串有多少个。 多组询问。 1<=n<=2000题解:显然可以离线。枚举左端点,往后用后缀自动机直接搞就行了。但是有个问题: 如何知道每次新加了多少条路径?注意到对一个状态有一个性质: root到状态x的路径长度在(step[parent[x]],step[x]]这个范围。而且好像区间内每个长度的路径数只有一条,这个我还没有搞明白。...
阅读(2) 评论(0)

SPOJ LCS2 - Longest Common Substring II

原题链接.题解:变成了多个串的最长公共子串了。还是对一个串建后缀自动机。其它的串放上去跑。对于每个状态求一个最小值,最后答案求一个最大值就行了。但是注意在匹配过程中,匹配到一个状态,但是实际上有很多状态也被匹配到了,考虑这种情况一个状态的值需要传递给它的parent。这个可以全部求出后按Turpo序来搞。为什么只传给parent是对的呢?后缀自动机有一个性质: 两个子串的最长公共后缀为它们对应状态...
阅读(2) 评论(0)

SPOJ LCS - Longest Common Substring

题目链接.题解:后缀自动机的例题。首先要知道一个性质: 一个状态s,所能代表的子串长度是(stepparentx,stepx](step_{parent_x},step_x]。对串A建后缀自动机。串B在上面跑。如果x有对应的子节点,那么直接走过去,len ++如果当前的x状态上没有对应的子节点,那就x = parent[x],直到有对应的子节点或者出了自动机。出了自动机,len = 0,注意把x赋...
阅读(0) 评论(0)

后缀自动机学习小记

前言:我学习这个东西吧是很懵的,结合了多篇论文和博客才搞懂最基础的构建,需要细细琢磨。推荐论文:陈立杰冬令营上的论文,有些小错误,而且我讨厌指针。 张天扬集训队的论文,里面讲了许多应用。推荐博客:后缀自动机学习总结——functioner.后缀自动机的定义:我也没搞清楚。 有限状态自动机的就是能识别字符串。 而后缀自动机就能识别一个字符串的所有后缀,当然同时能识别子串。后缀自动机的构建:一个显...
阅读(13) 评论(0)

【GDKOI2014模拟】树的直径

题目大意:并不想讲。题解:树的直径有一个性质。现在有两棵树,如果把它们随意连一条边,会变成一棵树,新树的直径的端点一定是之前两棵树的直径的共4个端点的两个。所以这题搞个倍增就可以在线了。Code:#include #include #define fo(i, x, y) for(int i = x; i <= y; i ++) #define fd(i, x,...
阅读(23) 评论(0)

51nod 1299 监狱逃离

原题链接.初二的时候就听老曹讲过这题。据说一个最小割就过了。最小割特别显然。每个点x->x’连代价为1的边,不要这个点就是割掉这条边。对于每个有人的点x,S->x连正无穷。对于每个叶子节点x,x->T连正无穷。对于每条树边x->y,x->y’连正无穷。跑最大流=最小割,就是答案。100000需要梦想。正解是个辣鸡树形dp。选一个叶子节点为根。fi,0/1/2f_{i,0/1/2}分别表示: 0.子...
阅读(66) 评论(0)

51nod 1835 完全图

原题链接. 比赛时我怎么都不会做这一题。旁边人表过了。显然的状态是fi,jf_{i,j}表示用了序号前i个,有j块的方案数。显然可以枚举第i个放的块的大小来转移。fi,j=∑i−(j−1)k=1fi−k,k−1∗fk−1,1∗Ck−1i−1f_{i,j} =\sum_{k=1}^{i-(j-1)}f_{i-k,k-1}*f_{k-1,1}*C_{i-1}^{k-1}这条方程神奇之处在于自我调用fk...
阅读(117) 评论(0)

【NOIP2013模拟联考7】最长上升子序列

Description:维护一个序列,使它可以进行下面两种操作: 1.在末尾添加一个数字x 2.将整个序列变成第x次操作后的样子 在每次操作后,输出当前序列的最长上升子序列的长度 序列初始时为空. n<=500000且所有输入的数字都是长整型范围内的非负整数题解:显然可以离散一下数字直接套用可持久化线段树,区间查询,单点修改。 也可以设fif_i表示长度为i的最小结尾,接着强行可持久化线...
阅读(123) 评论(0)

51nod 1290 Counting Diff Pairs

原题链接.看到n <= 50000就要有莫队的敏感度。某infleaking说也许整体二分套个数据结构是行的。离散一下,直接莫队,用个常数小的树状数组维护一下就行了。理论复杂度:O(nn√ log n)≈1.6∗109O(n \sqrt n ~log ~n)≈1.6*10^9。加上那么一点小常数也许会T。可是我才跑了1.6s,时限4s,……Code:#include #include...
阅读(46) 评论(0)

51nod 1203 JZPLCM

原题链接.据说这是某国家队爷的题,怪不得我一眼不会。求lcm即求各个质因子对应得指数的最大值。这时候想到以前做过几道类似的题怎么做的。把<n√n√>\sqrt n的质因子分成一块。这样做的优势是<n√n√>\sqrt n的质因子的指数最大为1。那么这道题就显然了。<n√<\sqrt n的质因子强行RMQ,因为只有48...
阅读(43) 评论(0)

默慈金数学习小记 && 51nod 1556 计算

参考博客:ACdreamers.事实上默慈金数很偏门,据说早就渗入ACM竞赛中了(庆幸我才初中)。默慈金数定义:在一个圆上有n个不同的点,画出彼此互不相交弦的方案数(可以不画)即是第n个默慈金数。递推公式: M(1)=1,M(2)=2M(1)=1,M(2)=2 M(n+1)=M(n)+∑n−1i=0M(i)∗M(n−1−i)M(n+1)=M(n)+\sum_{i=0}^{n-1}M(i)*M(n...
阅读(69) 评论(0)

NOIP2017 Day2_T3 列队

题目大意:众人皆知。题解:考场时打SBT打傻了,被卡爆了。这就是个傻逼线段树能过的东西,不要问我问为什么能跑这么快?每一行用线段树维护前m-1个。最后一列独立开来。查询用线段树二分。可以直接预开6e5。完。Code:#include #include #include #define ll long long #define fo(i, x,...
阅读(474) 评论(0)
183条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:52452次
    • 积分:2284
    • 等级:
    • 排名:第18585名
    • 原创:178篇
    • 转载:5篇
    • 译文:0篇
    • 评论:18条
    友情链接
    最新评论