
ACM_字符串
9974
这个作者很懒,什么都没留下…
展开
-
LA 3942 字典树+递推
题目链接 题意:给你s(s 思路: 把s个单词存入trie里,(str从1开始)用dp[i]表示str的子串(1-i)有几种分法。 从i+1开始在trie里找插入的单词,更新之后的dp。 #include #include #include #include #include using namespace std; #define maxn 300005 const in原创 2013-02-06 16:36:45 · 1476 阅读 · 0 评论 -
LA 3026 POJ 1961 KMP水题
KMP理解以后这种题很水。不解释。 LA题目链接 #include #include #include using namespace std; char s[1000006]; int f[1000006]; int n; void getfail(char *s) { f[0] = f[1] = 0; for(int i = 1; i < n; i++) { int j原创 2013-02-19 19:30:50 · 1199 阅读 · 0 评论 -
LA 4670 AC自动机简单题
题目链接 题意:给你n个子串(小写字母, n 注意:如果出现次数最多的有很多子串,要全部输出,还有n个子串会有重复。 做法:trie的每个节点用一个vector记录以该节点结尾的单词的标号,find()函数用数组cnt[]下标保存单词标号,值保存次数。然后扫描一下即可。 #include #include #include #include #include using nam原创 2013-02-20 14:05:37 · 1406 阅读 · 0 评论 -
UVa 11468 AC自动机+记忆化搜索
题目链接 题意:给你K个模板串(K 分析:一看本题数据范围比较小,又涉及概率问题,其中的递推关系也不难找到,所以可用记忆化搜索解决。 思路:用n个模板串构造AC自动机(改造的自动机在本题中比较方便),标记每个单词结尾的节点,表示这些节点不能到达(禁止点)。 记忆化搜索传入 变量u, l,分别表示当前访问的节点编号和生成串还需要构造的长度,然后很容易根据递归写出来。原创 2013-02-20 19:03:03 · 1218 阅读 · 0 评论 -
POJ KMP 入门4题
出处:http://blog.youkuaiyun.com/lalor/article/details/7358956 poj 3461 Oulipo 最简单的KMP题,找出第一个字符串在第二个字符串中出现次数。 View Code poj 2752 Seek the Name, Seek the Fame 求子串前缀跟后缀一样的各种情况 View Code poj 2406 Power S原创 2013-08-29 10:37:06 · 3361 阅读 · 1 评论 -
codeforces 159D dp + strings 好题
关键:很巧妙的枚举思路,枚举回文字符串中间字符的位置i,复杂度O(n), 然后统计 以i为起始位置的回文串的个数放在数组p[]中,以末尾位置的回文串的个数放在数组q[]中。 最后处理一下即可 View Code #include #includestring.h> #define lld __int64 char s[2006]; int p[2006], q[2006];原创 2013-08-29 10:36:46 · 928 阅读 · 0 评论 -
hdu4760 字典树 (2013网络赛)
网络知识比较差,造成看题非常吃力。 题目大意:有多个政策,每个政策里面有很多子网,E 表示加入一个政策,D表示禁止一个政策,F就是询问ip1,ip2是不是在同一个政策中。 思路:子网有个特点前缀相同,对于E,不难想到有字典树来维护所有子网(即ip的前缀),每个节点用一个vector保存该子网(即前缀)所属于的所有政策的标号。对于D操作,我们用一个数组维护该政策可不可用,对于F就是先把ip1所在原创 2013-10-02 19:49:59 · 1620 阅读 · 0 评论