2013年5月16日

hdu 2296(AC自动机+dp)

摘要: 题意:容易理解... 分析:这个题我做了几天,不是说这个题有多难,而是因为我太水了(比较两个字符串的大小都弄错了)。首先是状态转移方程,这个还是比较容易的:dp[i][j]=dp[i-1][k]+(这个点的权值);如果是单纯的让你求出最大的权值,那就比较简单了,但是题意让你输出的事权值最大的字符串, 阅读全文

posted @ 2013-05-16 23:51 后端bug开发工程师 阅读(488) 评论(2) 推荐(0) 编辑

2013年5月9日

优先队列模板

摘要: 优先队列模板:#include<iostream>#include<queue>using namespace std;struct node{ friend bool operator<(node n1,node n2) { if(n1.num1<n2.num1)//从小到大排序的,与快排刚好相反 return 0; else if(n1.num1==n2.num1&&(n1.num2<n2.num2)) return 0; else return 1; } i... 阅读全文

posted @ 2013-05-09 23:47 后端bug开发工程师 阅读(225) 评论(0) 推荐(0) 编辑

2013年5月5日

hdu 2243(Trie图(AC自动机)+DP+矩阵乘法+恶心取模)

摘要: 题意:容易理解... 思路:就是poj 2778的加强版吧,实现的思想差不多,在做这道题之前建议先做poj 1625、poj 2778,这三道题是同一种题型吧!出现过给定的单词的单词数=总单词数-未出现过给定单词的单词数,前者等于26^1+26^2+26^3....26^l,后者等于A^1+A^2+ 阅读全文

posted @ 2013-05-05 19:32 后端bug开发工程师 阅读(335) 评论(0) 推荐(0) 编辑

矩阵乘法的题目

摘要: 本来我还不想学这个算法的,因为以前从来没听说过,不过最近做AC自动机的题目时一直遇到需要用矩阵乘法来解决的题目,所以要学习下:poj 3070、poj3233 阅读全文

posted @ 2013-05-05 15:57 后端bug开发工程师 阅读(269) 评论(0) 推荐(0) 编辑

poj 2778(Trie图(AC自动机)+DP+矩阵乘法)

摘要: 题意:容易理解... 思路:这个之前做的poj 1625差不多,只是1625是属于大数的,用矩阵乘法不好做(会爆栈),直接DP就行,这一题需要用到矩阵乘法来提高程序运行效率,要注意的地方就是取模运算挺慢的所以要尽量减少这种运算,开始的时候我一直RE,原来是因为m=0的时候没有考虑到。在做这题之前建议 阅读全文

posted @ 2013-05-05 12:08 后端bug开发工程师 阅读(315) 评论(0) 推荐(0) 编辑

2013年5月2日

poj 1625(Trie图(AC自动机)+DP+精度计算)

摘要: 题意:首先输入三个整数:n,m,p;n代表总共有n个字母,m代表字符串的长度为m,p代表病毒字符串的个数;题目让你求的是不包含病毒的字符串长度为m的个数为多少。 思路:这个题让我意识到我自己是有多么的水啊,中南一大牛花了一天的时间自己想出来并且解决它,而我花费了一个星期的时间把别人的代码看懂了,啊! 阅读全文

posted @ 2013-05-02 20:54 后端bug开发工程师 阅读(862) 评论(1) 推荐(0) 编辑

2013年4月27日

字符串

摘要: 字符串:KMP Eentend-Kmp 自动机 trie图 trie树 后缀树 后缀数组2009-09-25 00:00:40|分类:算法与acm|字号订阅涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机 KMP算法 Extend-KMP 后缀树 后缀数组 trie树 trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中,我们只要用简单的暴力算法就可以解决了,然后如果暴力效率太低,就用个hash。当然hash也是一个面试中经常被用到的方法。这样看来,这样的一些算法 阅读全文

posted @ 2013-04-27 22:16 后端bug开发工程师 阅读(1618) 评论(0) 推荐(0) 编辑

2013年4月25日

poj 3070(矩阵的乘法)

摘要: 题意:就是让你求斐波拉切数列的第n项的后面四位。分析:但是n比较大,所以用数组是无法保存的,题目中已经给出了矩阵的表示方法,这是我做的第一道关于矩阵的乘法的题目,算法设置很巧妙,矩阵二分最基础也是最经典的题目,构造方法很多,由于F[n] = F[n-1] + F[n-2];|F[n] F[n-1] | | 1 1 | |F[n+1] F[n] || | * | | =|F[n-1] F[n-2] | | 1 0 | |F[n] F[n-1] |于是我们就可以得出每次相乘之后矩阵... 阅读全文

posted @ 2013-04-25 00:30 后端bug开发工程师 阅读(295) 评论(0) 推荐(0) 编辑

2013年4月23日

hdu 2896(AC自动机)

摘要: 题意:其实我觉得题意是不明确的,而且测试数据很水,各种错误代码也能够AC。 分析:我认为还有一种理解:就是为连续匹配,模式串中不能出现交叉重复,如:有两种病毒:ab,ba,网站名是:aba答案是web 1: 1 ;total: 1我很纠结!!因为AC代码的答案是:web 1: 1 2;total 1 阅读全文

posted @ 2013-04-23 18:28 后端bug开发工程师 阅读(254) 评论(0) 推荐(0) 编辑

AC自动机题目

摘要: hdu 2222 、hdu 2896、hdu 2243、hdu 2296、hdu 3341、hdu 3065、hdu 4117、hdu 3247、hdu 2825、hdu 4057 hdu 2457、hdu 3489、hdu 3901、poj 2778、poj1625、poj 1204、poj 36 阅读全文

posted @ 2013-04-23 15:35 后端bug开发工程师 阅读(401) 评论(10) 推荐(0) 编辑

导航