题意: 给出一堆单词,如果有一个单词可以分成左右串两个单词,并且在所给的一堆单词中存在,就是hat词,统计所有这样的词,并按字典序输出. 思路: 注意定义,一个hat词可以被两部分已经存在的词组成,那么也可以是由两个相同的词组成,比如{abcabc,abc} 这样的abcabc也是满足条件的.解法,将所有的单词塞到一个哈希set中,遍历其中每个单词,对每个单词进行任意可能的拆解成两部分,在该set中找,如果两个部分都找到了,那么就成功.塞到另一个set中,最后将set中全部输出.…
链接  HDU 1711 Number Sequence KMP 算法 我以自己理解写的,写的不对,不明白的地方海王子出来,一起共同学习: 字符串匹配 就是KMP,一般思想,用一个for循环找开头   如果开头一样进入第二个for循环:这样统计  直观 容易理解.但是时间复杂度比较长.所以就有KMP  这个算法了 KMP 大体思想因为在上一个方法之中,有的字符重复比较了,使得找到目标字符窜效率比较低, 比如   :目标串为:   ① a b a b c 在                 ② a…
题目 用map写超便捷 也可以用字典树来写 我以前是用map的: #include<stdio.h> #include<string.h> #include<algorithm> #include<string> #include<math.h> #include <iostream> #include<map> using namespace std; ]; int main() { ,n,len,j; map<s…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1247 Problem DescriptionA hat’s word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary.You are to find all the hat’s words in a dictionary. InputStandard…
题目链接:pid=1247" target="_blank">http://acm.hdu.edu.cn/showproblem.php? pid=1247 Problem Description A hat's word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary. You are to find all the h…
Hat’s Words Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10993    Accepted Submission(s): 3944 Problem Description A hat’s word is a word in the dictionary that is the concatenation of exact…
http://acm.hdu.edu.cn/showproblem.php?pid=1247 题意: 给出一些单词,问哪些单词可以正好由其他的两个单词首尾相连而成. 思路: 先将所有单独插入字典树,然后对于每一个单词,枚举它的分割点,去字典树中查找是否具有这两个单词. #include<iostream> #include<cstdio> #include<cstring> using namespace std; +; ]; ; struct Trie { ]; in…
分析:一開始是用递归做的,没做出来.于是就换了如今的数组.即,把每个输入的字符串都存入二维数组中,然后创建字典树.输入和创建完成后,開始查找. 事实上一開始就读错题目了,题目要求字符串是由其它两个输入的字符串组成的前后缀,自己根本没有推断前缀是否满足.就直接推断后缀,一直想不通自己哪里错了,非常羞愧,水平还是不行. 查找分为前缀查找和后缀查找.事实上两个函数基本差点儿相同的.以下放代码. #include <cstdio> #include <cstring> #include &…
Hat's Words Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14083 Accepted Submission(s): 5049 Problem Description A hat's word is a word in the dictionary that is the concatenation of exactly two…
http://acm.hdu.edu.cn/showproblem.php?pid=6170 题目大意: 给出两个字符串s1和s2(长度小于等于2500). s1是一个正常的包含大小写字母的字符串,s2是一个类似正则表达式的字符串,除了大小写字母,还有 " . " 和 " * " 两种符号. " . " 表示可以匹配任意一个字母. " * "表示前一个字符可以重复出现任意次(包括零). 解题思路: 一道标准的dp O(n^2)…