梦,才是最真的现实

导航

2012年8月22日 #

hdu

摘要: 模版题。。。。注意只统计总类#include#include#include#include#include#define val 10005using namespace std;struct Dictree{ int cnt; int no; Dictree *next[100],*fail;}... 阅读全文

posted @ 2012-08-22 09:54 梦,才是最真的现实 阅读(140) 评论(0) 推荐(0) 编辑

HDU 2222 AC自动机模版

摘要: 弄个模版也能花一天。。。。太佩服我自己了。。。。root的初始化都没弄好。。#include#include#include#include#define val 10005using namespace std;struct Dictree{ int cnt; Dictree *fail,*nex... 阅读全文

posted @ 2012-08-22 01:10 梦,才是最真的现实 阅读(131) 评论(0) 推荐(0) 编辑

2012年8月20日 #

hdu 1247 字典树

摘要: 题意:给你一部分单词,让你找出所有这样的单词:a+b=c,就是一个单词,由另外两个单词串联而成解题思路:先输入全部单词,构建一棵tire树,然后枚举所有单词,对单词进行查找,查找过程中经过的单词节点记录下来,(已经确定有一个单词了,寻找另一个单词是否存在)然后从这个节点再重新搜(树根开始),如果另一... 阅读全文

posted @ 2012-08-20 15:34 梦,才是最真的现实 阅读(118) 评论(0) 推荐(0) 编辑

POJ 3630 静态字典树

摘要: 题意:给你一些电话号码,问你是否有一个电话号码是其他电话号码前缀比如,911 和911584这两个号码,911是911584的前缀解题思路:经过pork大神的指导,估计时间如下,一共有10000个电话号码插入,每个号码最长10位,如果每次插入最差就是开辟10个新的节点,那就是10000*10*10个... 阅读全文

posted @ 2012-08-20 09:48 梦,才是最真的现实 阅读(150) 评论(0) 推荐(0) 编辑

hdu 1075 字典树

摘要: int 定义为char,re了2个小时,人才啊。。。。。。。。。。。。注意点,abc 对应efg,输入efg应该输出abc,输入ef呢?注意输入前缀无输出的情况#include#include#include#include#include"ctype.h" struct Dictree{ int... 阅读全文

posted @ 2012-08-20 03:14 梦,才是最真的现实 阅读(110) 评论(0) 推荐(0) 编辑

2012年8月19日 #

HDU 1800 贪心

摘要: 这个题目不同于导弹拦截,这个可以调整顺序的,所以我们可以通过统计每个数字的出现次数,出现次数最多的就是ANS比如 1 2 4 5 4 ,其中4出现了两次,这个次数是最多的了,所以答案就是2由于数字区间高达三十位数,用普通的区间查找绝对TLE,这个时候,用字典树是个好选择,统计下每个字符串的出现次数是... 阅读全文

posted @ 2012-08-19 19:12 梦,才是最真的现实 阅读(125) 评论(0) 推荐(0) 编辑

poj 3080 kmp水题

摘要: 题意:找出所有匹配串中的最长公共子串,长度须大于3数据小,从长度为大到小枚举吧#include#include#define val 65int next[val],tot;char p[val],s[11][val];char ans[val];bool kmp(char *,char *);in... 阅读全文

posted @ 2012-08-19 14:20 梦,才是最真的现实 阅读(112) 评论(0) 推荐(0) 编辑

hdu 3336 next数组统计前缀次数

摘要: 前缀次数总和=前缀种类数+每种前缀在后面的出现次数贴一个不错的题解,但是题解有个地方讲的不是太清晰,就是为什么next【j】+1==next【j+1】的时候就不统计了呢?http://972169909-qq-com.iteye.com/blog/1114968因为如果next等于后一个next值加... 阅读全文

posted @ 2012-08-19 10:19 梦,才是最真的现实 阅读(163) 评论(0) 推荐(0) 编辑

2012年8月18日 #

hdu 1867 最长公共前缀和后缀

摘要: 题意描述不太好,说好是A+B,却可以B+A,虽然理论上是这样,但我觉得题意说清楚些比较好我的做法和网上的题解不一样,比如asdf sdfg我把第一个字符串接在第二个的后面,形成sdfgasdf,长度一共为8,然后找next【8】,next【8】就是最长公共串的长度(为什么是这样,请看题解poj 27... 阅读全文

posted @ 2012-08-18 23:47 梦,才是最真的现实 阅读(273) 评论(0) 推荐(0) 编辑

HDU 2203 kmp

摘要: 很有意思的一道题,一看感觉无从下手,后来一想,其实把匹配串复制一遍,然后用KMP搜一遍就行了、#include#include#include#define val 100005int lens,lenp,next[val];char s[val*2],p[val];bool kmp();int m... 阅读全文

posted @ 2012-08-18 20:31 梦,才是最真的现实 阅读(104) 评论(0) 推荐(0) 编辑