随笔分类 - 

HNU 13108-Just Another Knapsack Problem (ac自动机上的dp)
摘要:题意:给你一个母串,多个模式串及其价值,求用模式串拼接成母串(不重叠不遗漏),能获得的最大价值。分析:ac自动机中,在字典树上查找时,用dp,dp[i]拼成母串以i为结尾的子串,获得的最大价值,dp[i]=max(dp[i],dp[i-len]+val[tmp])。,len是模式串的长度,val[t... 阅读全文

posted @ 2015-09-03 22:46 积跬步、至千里 阅读(214) 评论(0) 推荐(0)

LightOJ 1427 -Repository(ac自动机)
摘要:题意:求每个模式串在母串中出现的次数#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu... 阅读全文

posted @ 2015-09-03 22:35 积跬步、至千里 阅读(198) 评论(0) 推荐(0)

HDU 3065 AC自动机
摘要:题意:给多个模式串一个母串,求个模式串在母串中出现的次数。#include #include #include #include #include #include #include #include #include #include #include #include #include #inc... 阅读全文

posted @ 2015-09-03 22:29 积跬步、至千里 阅读(121) 评论(0) 推荐(0)

HDU 2896-病毒侵袭(ac自动机)
摘要:题意:给定多个模式串,每给一个母串,输出包含模式串的编号,最后输出包含模式串的母串的数量。分析:ac自动机模板#include #include #include #include #include #include #include #include #include #include #incl... 阅读全文

posted @ 2015-09-03 22:27 积跬步、至千里 阅读(119) 评论(0) 推荐(0)

HDU 3695-Computer Virus on Planet Pandora(ac自动机)
摘要:题意:给一个母串和多个模式串,求模式串在母串后翻转后的母串出现次数的的总和。分析:模板题/*#include #include #include #include #include using namespace std;const int maxnode = 250*1000+10000;cons... 阅读全文

posted @ 2015-09-03 22:05 积跬步、至千里 阅读(120) 评论(0) 推荐(0)

hdu 2594-Simpsons’ Hidden Talents(KMP)
摘要:题意:给你两个串a,b,求既是a的前缀又是b的后缀的最长子串的长度。分析:很自然的想到把两个串连接起来,根据KMP的性质求即可#include #include #include #include #include #include #include #include #include #inclu... 阅读全文

posted @ 2015-09-03 21:50 积跬步、至千里 阅读(625) 评论(0) 推荐(0)

hdu 2087-剪花布条(KMP)
摘要:题意:求文本串最多可以分成几个模式串。分析:KMP#include #include #include #include #include #include #include #include #include #include #include #include #include #include... 阅读全文

posted @ 2015-09-03 21:43 积跬步、至千里 阅读(136) 评论(0) 推荐(0)

hdu 3746 Cyclic Nacklace(KMP)
摘要:题意:求最少需要在后面补几个字符能凑成两个循环。分析:最小循环节的应用,i-next[i]为最小循环节。#include #include #include #include #include #include #include #include #include #include #include... 阅读全文

posted @ 2015-09-03 21:38 积跬步、至千里 阅读(120) 评论(0) 推荐(0)

hdu 3336 count the string(KMP+dp)
摘要:题意:求给定字符串,包含的其前缀的数量。分析:就是求所有前缀在字符串出现的次数的和,可以用KMP的性质,以j结尾的串包含的串的数量,就是next[j]结尾串包含前缀的数量再加上自身是前缀,dp[i]表示以i为结尾包含前缀的数量,则dp[i]=dp[next[i]]+1,最后求和即可。#include... 阅读全文

posted @ 2015-09-03 21:34 积跬步、至千里 阅读(120) 评论(0) 推荐(0)

HDU 4749-Parade Show(KMP变形)
摘要:题意:给出一个母串和一个模式串求母串中最多能分成最大的子串数(每个字串中的各个数字的大小关系和模式串相同)分析:KMP变形匹配规则变一下即可,用当前数字和下个数字的差表示,大小关系方便匹配#include #include #include #include #include #include #i... 阅读全文

posted @ 2015-09-02 15:59 积跬步、至千里 阅读(145) 评论(0) 推荐(0)

HDU 2222 (AC自动机模板题)
摘要:题意:给一个文本串和多个模式串,求文本串中一共出现多少次模式串分析:ac自动机模板,关键是失配函数#include #include #include #include #include #include #include #include #include #include #include #i... 阅读全文

posted @ 2015-08-16 16:43 积跬步、至千里 阅读(158) 评论(0) 推荐(0)

Period(KMP,循环节问题)
摘要:题意:求给你个串,前i位子串由某个字符串重复k次得到,求所有的i和k分析:i-next[i]恰好是一个循环节#include #include #include #include #include #include #include #include #include #include #inclu... 阅读全文

posted @ 2015-08-16 16:37 积跬步、至千里 阅读(212) 评论(0) 推荐(0)

Number Sequence(KMP,判断子串 模板)
摘要:题意:给两数组,求一个是否是另一个的子数组,若是返回匹配的首位置分析:KMP 入门//扫描字符串A,并更新可以匹配到B的什么位置。#include #include #include #include #include #include #include #include #include #inc... 阅读全文

posted @ 2015-08-16 16:32 积跬步、至千里 阅读(206) 评论(0) 推荐(0)

LA3942-Remember the Word(Trie)
摘要:题意:有s个不同的单词,给出一个长字符串把这个字符串分解成若干个单词的连接(可重复使用),有多少种分解方法分析:dp[i]表示i开始的字符串能分解的方法数 dp[i]=sum(dp[i+len(x)]);单词x是i开始的字符串的前缀。#include #include #include #inclu... 阅读全文

posted @ 2015-08-09 17:48 积跬步、至千里 阅读(169) 评论(0) 推荐(0)

Uva11732(trie)
摘要:题意:给你n个字符串 用strcmp()两两比较 ,求字符比较的总次数分析:数据量很大我们考虑用孩子兄弟表示法来表示字典树#include #include #include #include using namespace std;typedef long long ll;const int N ... 阅读全文

posted @ 2015-08-09 17:32 积跬步、至千里 阅读(165) 评论(0) 推荐(0)

HDU 1251-统计难题(Trie)
摘要:题意:给一组单词 开始提问每次给一个串求该串是上面几个单词的前缀分析:没给数据规模,但用链表写ME好几次,又用数组写开小RE了,试了几次才过了,真是醉了。。。#include #include #include #include #include #include #include #include... 阅读全文

posted @ 2015-08-09 17:04 积跬步、至千里 阅读(139) 评论(0) 推荐(0)

HDU 1075-What Are You Talking About(Trie)
摘要:题意:给你一个字典 一个英文单词对应一个火星单词 给你一段火星文翻译成英文 字典上的没有的不翻译分析:没有给数据规模 字典树用链表#include #include #include #include #include #include #include #include #include #inc... 阅读全文

posted @ 2015-08-09 16:57 积跬步、至千里 阅读(139) 评论(0) 推荐(0)

UVA 11488-Hyper Prefix Sets(Trie)
摘要:题意:给一个01串的集合,一个集合的幸运值是串的个数*集合中串的最大公共前缀 ,求所有子集中最大幸运值分析:val[N]表示经过每个节点串的个数求幸运值 求就是每个节点值*该节点的深度 搜一遍树求出最大值#include #include #include #include #include #in... 阅读全文

posted @ 2015-08-09 16:50 积跬步、至千里 阅读(143) 评论(0) 推荐(0)

HDU 4825-Xor Sum(trie)
摘要:题意:给你一组数,开始询问给一个数 求组中与该数异或值最大的数。分析:根据异或的特点 要想得到的异或值最大 尽可能的让两个数的每位都相反 先把给定的一组数建树,数的最后一位对应的节点保存这个数的位置(放便取) 对于每个询问 在搜树时优先考虑和当前数位相反的节点。#include #include #... 阅读全文

posted @ 2015-08-09 16:33 积跬步、至千里 阅读(617) 评论(0) 推荐(0)

POJ 3630- Phone List(Trie)
摘要:题意:给一组串,是否存在一个串是另一个的前缀。分析:val[N]保存树节点上是否组成一个串#include #include #include #include #include #include #include #include #include #include #include #inclu... 阅读全文

posted @ 2015-08-09 16:14 积跬步、至千里 阅读(125) 评论(0) 推荐(0)

导航