摘要: 与其说这是一次重温AC自动机+dp,倒不如说这是个坑,而且把队友给深坑了。这个题目都没A得出来,我只觉得我以前的AC自动机的题目都白刷了——深坑啊。题目的意思是给你两个串,每个串只含有R或者D,要求有多少种长为(n+m)的串(其中有n个R,m个D)同时含有这两个串作为子串。(我就不说题目描述了)看完了题目我居然一开始用排列组合去做,搞了近一个小时,深坑队友啊。其实正解是用AC自动机来dp出解的。什么意思呢?把两个给定的串放到AC字典树上,并且弄好fail指针,变为tire图,构造好AC自动机,然后就是dp了!怎么dp呢?可以这样来做,f[x][y][z][k]表示在第x个点,走了y个R,z个D 阅读全文
posted @ 2013-09-23 21:04 092000 阅读(898) 评论(0) 推荐(0) 编辑
摘要: 在比赛的时候,被这个题目虐死了,这一周中每当我有空闲时间我就总是思索这个题目的解题方法。终于在自己学过了mobius反演,并且看过别人写得解题思路后自己有了思路。下面说说我的解题思路吧。首先题目的意思很简单,给你n,m,p,问你能取出多少组有序对(x,y),使得gcd(x,y)的质因子的个数不超过p个(4看成有两个质因子)。首先声明这个题目是mobius反演的内容。不会的先学会了再看下面的内容。其实最先想到的肯定是和其他gcd统计问题差不多的思路啊,那就是先求mobius函数值,在求出它的和函数,在求答案的时候进行分块求解就OK了。总的时间复杂度是(n*log(n)+t*(sqrt(n)+sq 阅读全文
posted @ 2013-09-23 00:34 092000 阅读(2009) 评论(0) 推荐(1) 编辑