SPOJ
huanghongxun
这个作者很懒,什么都没留下…
展开
-
BZOJ 2588/SPOJ Count on a Tree LCA+线段树
问树上点对间的第k大。 对每个点维护到根的路径上的权值情况,分别建立权值线段树,为了压缩内存利用可持久化线段树即可。#include <cstdio>#include <algorithm>using namespace std;#define FOR(i,j,k) for(i=j;i<=k;++i)const int N = 100005, M = N, K = 16;struct S原创 2016-03-14 23:34:50 · 477 阅读 · 0 评论 -
SPOJ 705 New Distinct Substrings 后缀数组
LINK: http://www.spoj.com/problems/SUBST1/ bzoj 3230做着做着就滚来做这题了。。 求一个字符串的不等(?)子串个数。 比如字符串ababa,其排好序的后缀是: a aba ababa ba baba 然后每个后缀可以产生以其长度n−sai+1n-sa_i+1为个数的子串,但和有序上一个后缀会产生重复子串,个数为与其的公共前缀长度,因原创 2016-02-15 11:20:31 · 394 阅读 · 0 评论 -
SPOJ 7258 SUBLEX 后缀自动机
求第k大子串。按拓扑序处理出一个点往后有多少条路径到终态。 答案就很明显了。#include <cstring>#include <cstdio>#define FOR(i,j,k) for(i=j;i<=k;++i)const int rt = 1, N = 300005;int last = 1, cnt = 1, len = 0;int trans[N][26], fa[N], m原创 2016-04-15 19:04:48 · 667 阅读 · 0 评论 -
SPOJ 8222 NSUBSTR 后缀自动机
求长度为i的出现次数最多的子串的次数。 即找出min(s)≤i≤max(s)min(s)\leq i\leq max(s)的状态ii,使其Right集合元素个数最多。。 首先可以计算出每个状态的Right集合大小,即Parent树的子树的叶子节点数。 然后dp就好了。。一直internal error也是坑。。#include <cstring>#include <cstdio>#incl原创 2016-04-15 20:48:28 · 568 阅读 · 0 评论 -
SPOJ 1812 LCS2 后缀自动机
求给定n个串的最长公共子串。先对一个构造SAM。 接着每个串匹配一次,并处理出各状态能匹配到的最大长度(要注意沿Parent树更新),于是总的就是各状态的最小值。#include <cstring>#include <cstdio>#include <algorithm>#pragma comment(linker, "/STACK:1024000000,1024000000") usi原创 2016-04-15 23:54:24 · 576 阅读 · 0 评论 -
POJ 2033|SPOJ ACODE|Alphacode|动态规划
SPOJ:http://www.spoj.com/problems/ACODE/题目翻译A和B希望给对方发送聊天信息并且加密数据传输,他们讨论后希望这样加密数据: A:“让我们用一种十分简单的加密方式:令字符’A’的编码为1,’B’的编码为2,以此类推,直到’Z’的编码是26。” B:“mdzz,假设我发给你单词’BEAN’,加密后为25114,但是解密的可能结果有很多种!” A:“你还是to原创 2017-08-29 21:29:29 · 349 阅读 · 0 评论