![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SPOJ
文章平均质量分 79
Gatevin
这个作者很懒,什么都没留下…
展开
-
SPOJ 5971 LCM Sum 欧拉函数 (或 莫比乌斯反演?)
题目大意:这个题我的选择的方法比较直观原创 2014-08-04 19:51:32 · 1478 阅读 · 0 评论 -
SPOJ 375 QTREE Query on a tree 树链剖分水题
题目大意:给定一棵树后两种操作修改边权, 询问两点间路径上的边权的最大值大致思路:树链剖分水题剖分之后线段树维护最大值即可, 单点更新区间查询代码如下:Result : Accepted Memory : 4403 KB Time : 490 ms/* * Author: Gatevin * Created Time:原创 2015-09-08 20:02:06 · 429 阅读 · 0 评论 -
SPOJ HIGH 104 Highways 图的生成树计数 (Matrix-Tree定理)
题目大意:就是一个有n个点的无向图求不同的生成树的个数n 大致思路:利用的是Kirchhoff矩阵的性质, 也就是Matrix-Tree定理来计算图中的不同生成树个数模板题参考资料:《生成树的计数及其应用》代码如下:Result : Accepted Memory : 2.6 M Time : 0 ms/* *原创 2015-08-28 14:35:59 · 1034 阅读 · 0 评论 -
SPOJ LCS2 Longest Common Substring II 后缀自动机
题目大意:就是现在给出最多10个长度不超过10^5的字符串, 求这10个串的最长公共字串的长度大致思路:这是SPOJ LCS那题的升级版, 那道题我是将所有串连接起来中间用没有出现过的字符隔开然后整体建立后缀自动机然后对于每个点上状压记录Right集合当中元素的来源来做的但是这个题这么做会TLE, 虽然复杂度也是O(n)的, 但是这个题的时间限制很紧所以后来换了一个方法原创 2015-04-09 10:50:54 · 863 阅读 · 0 评论 -
SPOJ LCS Longest Common Substring 后缀自动机
题目大意:就是现在给你两个长度不超过25*10^4的串, 求他们的最长公共子串的长度大致思路:第一道后缀自动机的题...居然套模板一发过了....我的想法就是原本后缀自动机中不是对于你每一个状态State记录了Right集合的元素个数嘛, 那么对于两个输入的串, 中间用一个没有出现的字符隔开之后插入后缀自动机, 然后用一个变量appear状压记录当前这个状态所含有的Ri原创 2015-04-08 20:10:55 · 692 阅读 · 0 评论 -
SPOJ NSUBSTR Substrings 后缀自动机
题目大意:就是现在给出一个长度不超过25W的字符串S, 定义F(x)表示字符串S中长度为x的子串出现的最多次数, 例如“ababa"中F(1) = 3 (“a”出现了3次), F(2) = 2 ("ab“或者"ba"都出现了2次)F(3) = 2 ("aba"出现了2次) F(4) = F(5) = 1, 对于给出的字符串S, 长度为n, 输出F(1~n)的值大致思路:首先原创 2015-04-11 13:29:58 · 1199 阅读 · 0 评论 -
SPOJ SUBLEX Lexicographical Substring Search 后缀自动机
题目大意:就是现在对于给出的长度不超过90000的字符串进行Q(Q 其中相同的子串只算一次例如“aaa"的子串是"a", "aa", "aaa"大致思路:首先对于给出的字符串建立后缀自动机, 然后利用后缀自动机的性质, 所有相同的子串一定会在同一点终止, 那么, 从根开始, 每次都选择尽量小的字符走, 首先我们可以dfs预处理出每个状态点处代表的可能向下的不同字串有多少个,原创 2015-04-10 15:49:00 · 1027 阅读 · 0 评论 -
SPOJ NUMOFPAL - Number of Palindromes 水题 (Palindromic Tree 练习)
题目大意:其实就是一个字符串求出其好友的回文串的数量(本质相同但位置不同视为相同)大致思路:其实就是一个水题, 给出的字符串长度 代码如下:Result : Accepted Memory : 3277 KB Time : 0 ms/* * Author: Gatevin * Created Time: 2015/3/30 22原创 2015-03-30 22:16:04 · 952 阅读 · 0 评论 -
SPOJ 687 REPEATS Repeats 后缀数组 + RMQ预处理
题目大意:对于给出的字符串(长度大致思路:就是POJ 3693那题的简单版本....不需要找到字典序最小的....首先有这样一个事实: 对于任何一个子串, repetition number >= 1, 所以对于repetition number为1的只需要找到字典序最小的那个字母即可, 那么我们只考虑repetition number >= 2的情况, 如果每一个循环节的原创 2015-02-09 15:53:54 · 1077 阅读 · 0 评论 -
SPOJ 220 PHRASES Relevant Phrases of Annihilation 后缀数组
题目大意:就是现在给出T组测试数据(T 对于每一组, 求在所给的所有串都出现了至少两次的子串的最大长度, 每个串中出现的两次不能有重叠部分大致思路:很明显的后缀数组利用height数组进行分组的题刚开始的时候没有考虑出现的两次不重合(没仔细读题以为可以...) WA了2发= =具体细节见代码:代码如下:Result : Accepted原创 2015-02-09 15:03:56 · 571 阅读 · 0 评论 -
SPOJ 705 SUBST1 New Distinct Substrings 后缀数组
题目大意:给出一个字符串(长度 大致思路:和SPOJ 694. Distinct Substrings 一样....买一送一..../* * Author: Gatevin * Created Time: 2015/2/9 13:25:03 * File Name: Iris_Freyja.cpp */#include#include#include#in原创 2015-02-09 13:55:36 · 730 阅读 · 0 评论 -
SPOJ 694 DISUBSTR Distinct Substrings 后缀数组
题目大意:对于给出的字符串(长度不超过1000) 求其不同的子串的个数大致思路:就是一个简单的height数组性质的利用, 如果每个子串我们用从位置j开始且长度为k来表示不同的子串的话则一个height[i]值说明表示从位置sa[i - 1]开始的和sa[i]开始的长度为k 所以用全部的子串数减去重复出现的即可, 具体见代码注释代码如下:Result原创 2015-02-09 13:46:38 · 583 阅读 · 0 评论 -
SPOJ WPUZZLES (POJ 1204) 413.Word Puzzles AC自动机
题目大意:就是现在有一个游戏,给你一个L*C的字符块,只包含大写英文字母,现在你要在这个块中找到给出的所有的英语单词的位置和摆放方向。其中要找的单词在块中只出现一次,(实际上多个要找的块不会重合,这个游戏就是这样...)对于每个要找的字符串,输出其在块中起始位置的坐标和方向,方向只有8种,并且单词摆放不会拐弯..就是一条线摆放大致思路:其实就是个简单的模板题...首先将原创 2014-11-26 19:21:54 · 1286 阅读 · 0 评论 -
SPOJ GAME3 9842. Yet Another Fancy Game 博弈
好久没写过题解了....得找回一下原来写ti'j原创 2014-11-07 19:04:22 · 808 阅读 · 0 评论 -
SPOJ AMR 10E Stocks Prediction 矩阵快速幂 + 二分求和
题目大意:每个月的销量满足递推式:S(n) = a1*S(n - 1) + a2* S原创 2014-07-30 19:29:49 · 996 阅读 · 2 评论 -
SPOJ AMR 10A Playground 计算几何
题目大意:给出一个多边形的顶点数N,给出接下来的询问数Q,原创 2014-07-30 19:02:52 · 721 阅读 · 0 评论 -
SPOJ 1771 NQUEEN (DLX解n皇后问题)
题目大意:就是现在在一个n*n的棋盘上已经摆放了一些皇后, n 现在要求找到对应的一种方案使得棋盘上有n个皇后互不攻击大致思路:就是舞蹈链解决的一类问题....用列表示对应行, 列, 左斜线和右斜线分别对应的占用情况在Dance的时候注意走到N步停止, 每次消除代表着行或者列的那些列的1, 而不是优先考虑对角线因为对角线方向是不能刚好选出N个互补相交的, 那样搜会导原创 2015-10-04 19:54:18 · 1337 阅读 · 0 评论