UVA
lajiyuan_
已经退役啦,会不定期更新cf博客 or 其他计算机知识相关的博客.
展开
-
【UVA 10887 Concatenation of Languages】 字典树/set
UVA-10887 本题题意就是给你AB两个字符串集,问你以A中字符串作为前缀,B中字符串作为后缀,可以得到多少个不同的字符串,就对每个拼接后的字符串放进字典树,统计单词个数就可以了#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>usin...原创 2018-06-18 12:32:00 · 218 阅读 · 0 评论 -
【UVA 11475 Extend to Palindrome】 KMP/manacher
UVA11475 本题题意是给你一个字符串,求出最少拼接字符数使其变为回文串KMP做法通过思考我们可以发现,只有作为后缀的回文串对结果产生贡献,那么这个题就转变为了找最长的后缀回文子串,我们将字符串倒置再拼接上原串,求得的next[len]也就是倒置字符串的前缀与原字符串的后缀的最大匹配长度,也就是本题答案。 UVA11475代码#include<stdio.h>...原创 2018-06-18 12:40:10 · 224 阅读 · 0 评论 -
【UVA 257 Palinwords】Manacher+Hash
UVA-257 本题意义是给你一堆字符串,将其中具有两个长度超过3的回文串的字符串输出 要求这两个回文字符串不能完全覆盖,但是可以重合,而且这两个回文字符串不能相同。 由于要求长度大于3而且可以重合,我们只要求每个长度为3/4的回文串就可以了,当某个位置存在长度>=3的回文串,如果串长为奇数,那么就取3,否则取4,然后把遍历指针i往后挪一位(去掉覆盖的情况),之后用hash判重就可以了...原创 2018-06-18 12:58:50 · 213 阅读 · 0 评论 -
【UVA 11019 Matrix Matcher 】 二维Hash+尺取 / 二维AC自动机
UVA-11019 本体题意就是给你AB两个字符矩阵,问你B矩阵在A矩阵中的出现次数。 我们可以进行二维hash,其实就是把n个横向串连在一起hash。 注意判相等的时候,我们不断进行尺取+hash,尺取的过程,我们删除当前第一行的hash值加上最后一行的hash值,删除第一行的hash值直接删去就可以 例如 AAAAAAAAA BBBBBBBBB CCCCCCCCC 我们删去第一...原创 2018-06-18 13:01:00 · 249 阅读 · 0 评论