UVALive
文章平均质量分 80
Gatevin
这个作者很懒,什么都没留下…
展开
-
UVALive 4513 (LA 4513) Stammering Aliens 后缀数组 或 hash
题目大意:白书例题给出一个整数m>=1和一个字符串(m 如果有多个子串满足条件输出出现位置最右的大致思路:首先很容易想到后缀数组的做法. 利用height数组分组, 很简单就不说了, 细节见代码另外白书上说可以用hash, 所以用这个题试了一下hash表示第一次用hash...然后就坑了有木有= =刚开始我取得是H函数中x = 2的情况来写这样可原创 2015-02-11 21:16:16 · 759 阅读 · 0 评论 -
UVALive 5794 (UVA 12361) File Retrieval 后缀数组 + 分治dfs
题目大意:就是现在给出F(1 大致思路:首先不难想到将F个串中间用未出现的不同字符隔开连接起来, 然后处理出后缀数组, 然后我们可以用后缀树的样子来看这些后缀之间的关系(后缀树组作为工具), 不能发现如果某一段连续的极大区间[L, R]中的height值都 >= h(也就是这个区间旁边的 < h),那么我们对于后缀sa[L - 1], sa[L], .... sa[R]的前 <原创 2015-03-12 20:07:53 · 892 阅读 · 0 评论 -
UVALive 5913 (LA 5913) Dictionary Size Trie树计数
题目大意:就是现在给出至多10^4个字符串每个长度都在1~40之间, 只包含小写字母, 问如果将其中任意一个串的前缀或者是任意一个串的后缀连接起来可以构成一个新词, 那么包括这些词本身在内一共可以形成多少个不同的词大致思路:这个题感觉还是挺巧妙地利用了Trie树来计数, 首先我们将所有的n个串插入到一个Trie树中, 然后将所有串倒过来插入到另外一个Trie书中, 那么trie原创 2015-05-06 12:37:24 · 958 阅读 · 0 评论 -
UVA 1462 or UVALive 4769 Fuzzy Google Suggest Trie树上的dfs 2009年哈尔滨G题
题目大意:就是现在给出至多30W个长度不超过10的串, 然后对于m 模糊匹配S和T的距离S和T的距离是有S变成T需要进行的最少操作数, 一次操作可以是将S删去一个字符或者插入一个字符或者将其中某个字符替换成其他字母大致思路:就是对于30W个串建立Trie树之后进行dfs搜索就可以了刚开始在UVALive上交一直Runtime Error... 实在找不到错误了之后去原创 2015-05-07 21:12:57 · 1091 阅读 · 0 评论 -
UVALive 3703 (LA 3703) Billing Tables Trie树
题目大意:感觉这就是个坑题意的题吧....看了好久没看懂题意是要干什么, 后来看了一份AC代码之后终于明白题意了注意到给出的Billing Table是从上到下进行查找然后找到路线的, 也就是说原本一个电话号码对应查找前缀按照给出的顺序一个一个匹配, 遇到匹配的就接入那条线那么僵这个Table重新编排一下, 使得结果是字典序顺序的, 并且其中任意一个不是另外一个的前缀, 也就是要表最小原创 2015-05-06 19:52:53 · 983 阅读 · 0 评论 -
UVALive 4671 (LA 4671) K-neighbor substrings (2009年合肥) FFT
题目大意:就是现在定义两个字符串之间的Hamming距离指的是两个相同长度的字符串对应位置字符不同的位置数量, 例如“aab"和”bab"的Hamming距离是1因为第一个字符不一样现在给出K个两个只包含字符'a', 'b'的字符串A和B, 求A的子串中与B的Hamming距离不超过K的本质不同的子串数量, 即如果"aaa"在A中出现两次及以上且满足条件也只记一次大致思路:原创 2015-07-15 14:18:01 · 2317 阅读 · 0 评论 -
UVALive 6886 (LA 6886) Golf Bot FFT
题目大意:就是现在给出N个数, 然后给出M个数询问这M书中有多少个可以是由这N个数中两个相加(同一个数可选两次)组成或者等于这N个数中的某一个大致思路:就是构造多项式相乘就可以了, FFT的最简单的应用了, 将N个数a1, a2,...an对应成多项式, 用x^k的系数是1表示N个数中有值为k的, 否则系数用0表示然后求这个多项式的平方就可以了代码如下:Re原创 2015-07-17 14:35:09 · 2108 阅读 · 0 评论 -
UVALive 4975 (LA 4975) Casting Spells Manacher + Set维护
题目大意:就是对于一个串, 长度不超过3*10^5, 询问其中最长的形似是ww^ww^类型的串, 其中w^是w反转得到的串大致思路:好早以前写的题了....当时交UVALive一直返回WA一直找不到错哪里了...现在回去看发现Rejudge成AC了....就是先Manacher处理出每个位置的回文半径从左至右扫一遍用set维护当前能覆盖到的右界, 然后枚举后半的ww^的原创 2015-08-11 19:55:31 · 784 阅读 · 0 评论 -
UVALive 6188 (LA 6188) Let There Be Light 计算几何
题目大意:就是现在给M = 15个光源, 然后每个光源(Tx, Ty, Tz)和Td, 对于一个点(Ex, Ey, Ez)处能产生的贡献根据公式给出了然后空间中有N = 2000个球, 现在可以从中删除R个球使得目标点出的贡献最大一个点光源能够造成贡献是没有球能挡住这个点光源到目标点的光线球是空心的大致思路:首先可以处理出每个点光源如果要对目标点产生贡献需要删去哪些原创 2015-11-08 09:26:17 · 925 阅读 · 0 评论 -
UVALive 3907 (LA 3907) Puzzle AC自动机 + 搜索DP 记录路径
题目大意:给定s个字符串(1 大致思路:首先利用AC自动机插入这s个串建立状态转移图, 然后再得到的有向图中搜索, 从根节点开始, 如果存在不经过禁止点的环, 那么输出No, 否则这个图不考虑禁止点是一个DAG, 选取跟节点AC自动机起点之后找最长路径, dfs即可, 可以用记忆化搜索加快对最长长度的搜索, 每次从当前点向之后转移的时候, 优先选字典序最大的字符边保证结果长度最原创 2015-02-15 15:16:15 · 741 阅读 · 0 评论 -
UVALive 5963 (LA 5963) Confusion in the Problem Set 二分图匹配 (或 YY)
题目大意:对于给定的一个数列 a[n]如果原创 2014-08-04 20:35:54 · 1038 阅读 · 0 评论 -
UVALive 4126 (LA 4126) Password Suspects AC自动机 + DP + 剪枝dfs
题目大意:白书练习题就是给了M(0 如果种数大致思路:首先吐槽一下看了网上某份题解半小时后发现他是错的....后来搞清楚了自己哪里错了...递归的时候出了输出所有结果的问题,因为记忆化使得部分结果没有被输出所有细节都记录在代码注释里了...大家看代码吧代码如下:Result : Accepted Memory : ? KB原创 2015-02-13 21:12:36 · 998 阅读 · 0 评论 -
UVALive 6117 (LA 6117) Pole Arrangement 动态规划
题目大意:给出N,L,R,表示现在有N原创 2014-07-29 22:30:05 · 728 阅读 · 0 评论 -
UVALive 3026 (LA 3026) Period KMP求字符串周期
题目大意:白书例题给出一个长度不超过1000000的字符串S, 对于该字符串的所有前缀求其周期, 如果周期K >= 2输出起始位置是第几个字符和其周期K每一个Test case之后都要有一个空行大致思路:就是利用KMP的next数组的性质对于长度为n的字符串如果n % (n - next[n]) == 0则是周期串, 周期的部分长度为n - next[n], 周期数为原创 2015-02-11 16:02:43 · 1409 阅读 · 0 评论 -
UVALive 6170 (LA 6170) Esspe-Peasee 扩展欧几里得
题目大意:就是现在给出3个整数 a , b , c其中原创 2014-08-02 21:04:47 · 790 阅读 · 0 评论 -
UVALive 4670 (LA 4670) Dominating Patterns AC自动机
题目大意:白书例题对于给出的N个(1 如果有多个结果, 按照输入顺序输出大致思路:明摆着个AC自动机水题...首先对于所有pattern建立AC自动机然后扫描一遍language text string即可, 记录每个字符串出现的次数细节见代码吧代码如下:Result : Accepted Memory : ? KB Ti原创 2015-02-11 16:31:05 · 794 阅读 · 0 评论 -
UVALive 3490 (LA 3940) || ZOJ 2619 Generator AC自动机(或KMP) + 整数高斯消元 + 数学期望
题目大意:就是现在一个字符串生成器每次随机扔出前n(n 将产生的字符连接起来成为其生成的字符串,如果它产生的字符串中有连续的一段出现了给定的禁止串,则生成停止求停止时已经生成的字符串长度的期望大致思路:一开始果断用了AC自动机,后来发现KMP也就足够了这个题建立方程组之后用Gauss消元不能用double的,容易产生误差...(因为误差跪了好多发之后改成整数版)原创 2015-02-12 20:55:53 · 1351 阅读 · 0 评论 -
UVALive 3942 (LA 3492) Remember the Word Trie树 + 记忆化搜索
题目大意:白书例题给出由S个不同单词组成的字典和一个长字符串. 把这个字符串分解成若干个单词的连接, 单词可以重复使用, 问有多少种分解方法单词个数1 大致思路:首先将S个单词插入Trie树, 然后利用递推的思想记忆化搜索即可代码如下:Result : Accepted Memory : ? KB Time : 79 ms原创 2015-02-11 14:22:16 · 729 阅读 · 0 评论 -
UVALive 5971 (LA 5971) Permutation Counting 动态规划 (容斥原理超时)
题目大意:对于整数 1 到 n 惊醒排列原创 2014-08-04 20:24:13 · 1060 阅读 · 0 评论 -
UVALive 2775 (LA 2775) Hidden Password 后缀数组
题目大意:对于一个字符串定义其 one-letter left cyclic shifts 为将其前 i (0 比如“abcde”这个串根据这个定义得到的就是abcdebcdeacdeaddeabceabcd一共5行, 第 i 行是将前i个字符搬到后面得到的字符串, i 从0开始计数现在对于给出的字符串S长度为L (5 大致思路:很容易想到后缀数原创 2015-02-15 16:08:32 · 711 阅读 · 0 评论 -
UVALive 6669 (LA 6669) Dragon’s Cruller (康托展开 + 最短路)
题目大意:就是一个3*3矩阵的游戏, 现在一共有9个格子, 然后有8个格子被8种方块填充, 另外一个是空格, 现在给出了一个表分别表示A~I位置能到达的位置和需要的代价需要的代价只有两种每次可以移动一个块到空位置为从一个状态最小需要多少代价变成另外一种大致思路:首先对于一个当前的游戏状态,用康托展开来记录当前状态,即当前状态可以表示成a1, a2, a3, ...,原创 2015-11-08 09:10:39 · 13228 阅读 · 0 评论