自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (12)
  • 收藏
  • 关注

原创 codeforce Round201 div1 B. Lucky Common Subsequence KMP+DP

这种包含或不包含某串总是dp+KMP或者AC自动机,dp的状态包含KMP或者AC自动机的状态,然后利用fail指针实现转移求KMP,在普通的最长公共子序列加一维记录匹配的状态dp[i][j][k]记录A的i位置和B的j位置时匹配到virus的k状态的答案有多少个wa的原因1.如果初始化,只初始化dp[0][0][0]=0是不对的,其实本题不初始化,全部都为0没问题2.不知道怎么

2013-09-30 12:50:07 1411 1

原创 hdu4758 AC自动机+dp

不用AC自动机的话,怎么dp,推公式都会交叉,都会重复,只有用AC自动机分离出一个个匹配的状态才能解决此题是poj2778 DNA sequence的弱化版1.对自动机上每个状态dp,dp[a][b][c][d]表示经过了a个字符,匹配了b个R,在c这个状态,d是4进制数,表示是否经过串1和串2trie树上其实代表一种转移关系,即当前匹配了i个字符,遇到i+1个字符会转到哪个状态2

2013-09-23 23:12:02 1198

原创 hdu4750 最小生成树

关键是利用“所有从s到t的路径上的最长边的最小值”这个条件,我们所要的只是这个最小值:对于(s,t),这个最小值一定是s到t的最短路上的最长边,则所有可能被取到的边是最小生成树上的边因为最小生成树利用的就是贪心,树上的边都是图上每两点间的最短路会经过的边实现:在kruskal的过程中,添加一条边,权值为w,两个连通分量u和v变为连通,有num[u]*num[v]*2对pair会取到

2013-09-22 13:48:21 1186

原创 hdu4751 two-sat

two-sat问题的特点是:每种物品之间有相互限制关系,每种物品不是属于A集合就是属于B集合。复杂度是n^2(u,v)相互认识,即u和v可以在同一个集合里,但并不一定,对这样的(u,v)不建立限制关系(u,v)不相互认识,可能u->v但没有v->u,一定不在同一集合里,他们的关系是“u为真则v为假”和“v为真则u为假”当染u为真时则必须染v为假,建边;当染u为假时则必须染v为真,建

2013-09-22 01:01:25 1320

原创 poj 1204 AC自动机

最直观的想法是8*(n*n)*n*n暴力由于在表里面要朝8个方向走,不能在上面建自动机,所以要在pattern建自动机建好后,在原表上朝8个方向走遍历整个表,这时候复杂度是8*n*n比较慢,但觉得比较直观#include #include #include using namespace std;#define sigma_size 26#define N 1010

2013-09-18 12:58:06 889

原创 poj 1816 字典树trie+自动机的理解

?当做一个普通字符来处理,匹配遇到任何字符时都往下走*的处理,不能在当前状态连一条连向自己的边,这样会有状态冲突,比如4*?**???这一组,这样构造出来的会包含*?*?*必须连向一个新的节点,匹配字符为*,这个新的节点连一条连向自己的边,在dfs匹配时一遇到*就往下走,p不增加,在有连向自己的边的节点上,可以p+1但不往下走,也可以p+1并往下走dfs

2013-09-11 21:29:36 1080

转载 最长回文串O(n)算法 hdu3068

//http://bbs.dlut.edu.cn/bbstcon.php?board=Competition&gid=23474 一个奇妙的o(n)算法,明天看看~~看完结果总结如下:  算法大致过程是这样。先在每两个相邻字符中间插入一个分隔符,当然这个分隔符要在原串中没有出现过。一般可以用‘#’分隔。这样就非常巧妙的将奇数长度回文串与偶数长度回文串统一起来考虑了(见下面的一个例子

2013-09-11 18:45:55 1392

原创 带花树(一般图最大匹配)详解 ZOJ 3316

{CSDN:CODE:3423010}

2013-09-06 23:59:07 9291 1

原创 poj 2778 经典 AC自动机+dp

http://blog.henix.info/blog/poj-2778-aho-corasick-dp.html 讲得很好1.当要转移的次数很多,有牵涉到很多关系时,用矩阵2.fail指针的理解用数组的写法更容易理解#include #include #include using namespace std;#define mod 100000#define CH

2013-09-06 01:04:49 790

原创 poj 2406 KMP 重复子串

没考虑 len%(len-f[len])!=0 的情况,太挫了#include #include #include #include #include #include using namespace std;char str[1000500];int f[1000500];int main (){ while(scanf("%s",str)!=EOF)

2013-09-05 19:36:42 800

原创 hdu 4700模板题 Homory tree+构造

1.当存在时,一定可以构建成一棵树每次找出当前点的集合中,点之间的最小流量,按照这个最小流量,可以把点分成两个集合v0,v12.v0,v1必须都不为空3.v0的点到v1的点的流量必须等于这个最小流量递归,不断将集合内的点分为两个集合,两个集合之间连边,最终构建出树#include #include #include #include #include using na

2013-09-04 00:10:53 1663 2

转载 hdu 4701 博弈难题

思路:▶ 设 win(i,x,y) 表示当前可以买的物品是 i,先手有 x 元,后 手有 y 元时,先手是否必胜▶ win(i,x,y) ⇐⇒∃j((j > i)∧(x ≥ si−sj)∧¬win(j,y,x−si +sj))▶ 其中 si = Ci + Ci+1 +···+ CN▶ 注意到 x + y = A + B−s1 + si,即 win(i,x) := w

2013-09-03 15:36:42 1324

原创 hdu 4705 树形dp+统计

1.A,B,C分别位于u的不同儿子2.A,B分别位于u的不同儿子,C在u的祖先#include #include #include #include #include using namespace std;#pragma comment(linker, "/STACK:16777216")#define N 100500#define ll long longvecto

2013-09-03 12:03:01 1109

暗时间-电子书

教你运用方法时间管理时间管理时间管理时间管理时间管理运用运用运用运用运用运用

2014-03-31

机器学习 andrew 讲义

andrew 网易公开课 机器学习 讲义 andrew 网易公开课 机器学习 讲义 andrew 网易公开课 机器学习 讲义

2013-08-01

C++ 学习路线

C++ 学习路线

2013-08-01

题表ACM-poj

acm的好资料

2013-05-04

优秀网页设计素材

很好的设计素材,来自设计群。

2013-04-30

RMQ与LCA问题

算法学习

2013-03-08

数据结构 C++

数据结构 C++

2012-05-18

Visual C++面向对象编程

Visual C++面向对象编程

2012-05-12

深入浅出MFC

讲的非常深入,看的懂你就程度很好了 FJDLKSJFKLDSAFDSA FDSFDSA

2012-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除