自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Quack

SGU ID:067782

  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 HDU 2825 Wireless Password AC自动机+状压DP

题意: 给出密码的长度n,可能含有密码字串的个数m和密码至少含有密码字串的个数k,求有多少种情况。 分析: 因为这个题不是问的密码字串必须全部包含,所以不能矩阵加速= = 果然n的大小变得很小只有25 可以用状压DP来做,具体是每个AC自动机内的节点都编个号,然后getfail的时候像以前矩阵加速getfail一样,假设当前节点的编号是2^k,当前节点的fail指向的点的编号是2^j,那么

2015-12-30 22:06:55 466

原创 Codeforces Round #337 (Div. 2) 战报

这次CF很难得是白天比赛= =于是果断现场赛了 A Pasha and Stick 题意:给出总的木棍长度,求把木棍拆成一个矩形的方案数,不含正方形。 这个水题直接给代码了。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,ans;int m

2015-12-29 00:42:01 413

原创 两个AC自动机+矩阵的题

POJ 2778 DNA Sequence 题意:给出n个匹配串,已知原串的长度为m,求原串中不包含任何一个匹配串的情况数。 先把n个匹配串建成AC自动机,然后根据trie图建矩阵,最后矩阵快速幂求解。 建AC自动机要注意这些矩阵的题,next数组必须有值。初始值为-1方便更新。 建矩阵的时候要注意trie图只是根据next数组来建的,和fail半毛钱关系都没有。那么为什么要用AC自动机呢?

2015-12-25 00:18:48 547

原创 ZOJ 3430 detect the virus AC自动机

#include<stdio.h>#include<iostream>#include<cstring>#include<queue>using namespace std;int n,m,alen,blen,a[5100],b[5600];struct ACatuomata{ int next[55600][256],fail[55600],idx[55600],last[55

2015-12-23 21:25:38 389

原创 HDU 3065 病毒侵袭持续中 AC自动机

#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<set>using namespace std;char key[1010][52],s[2000010];int ans[1010],n;struct ACautomata{ int next[50010][26],fail[

2015-12-23 21:17:01 345

原创 HDU 2896 病毒侵袭 AC自动机

#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<set>using namespace std;struct ACautomata{ int next[100010][127],idx[100010],fail[100010],last[100010],num,root;

2015-12-23 21:11:25 325

原创 AC自动机模板

#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;char s[1000010];struct ACautomata{ int next[500010][26],fail[500010],cnt[500010],last[500010],num,root;

2015-12-23 20:58:19 370

原创 回文树笔记

1.回文树的next[charset]指针: b->aba 那么就这样表示:b.next[a]=aba 当然树里面肯定不能存字符串,于是就直接用下标标号代替了 2.回文树的fail指针: 跟ac自动机类似,fail指针指向当前节点的最大回文后缀 没有就指向根 3.回文树的根 有2个根,一个单根就是往下连回文串长度为奇数的节点,本身长度为-1 还有个双根就是往下连回文串长度为偶数的

2015-12-21 23:01:42 797 2

原创 manacher模板

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int len,maxid,ans,p[4000010];char c,s[4000010];int main(){ s[len++]='@'; while(~(c=getchar())&&c!='\n')s[len++]='$'

2015-12-19 11:51:29 455

原创 后缀数组模板

bool cmp(int *y,int a,int b,int l){ return y[a]==y[b]&&y[a+l]==y[b+l];}void pd(int n,int m){ int i,j,p,*x=prnk,*y=psa; for(i=0;i<m;++i)bucket[i]=0; for(i=0;i<n;++i)++bucket[x[i]=s[i

2015-12-19 11:48:40 338

原创 BestCoder Round #66 (div.2) 战报(误)

一场优秀的涨rating比赛。。 1.GTW likes math 问题描述 某一天,GTW听了数学特级教师金龙鱼的课之后,开始做数学《从自主招生到竞赛》。然而书里的题目太多了,GTW还有很多事情要忙(比如把妹),于是他把那些题目交给了你。每一道题目会给你一个函数f(x)=ax^2+bx+c求这个函数在整数区间[l,r]之间的最值。 题解 注意到这个数据范围[l,r]最长只有200,因此可

2015-12-13 16:22:39 387

原创 Codeforces Round #335 (Div. 2)战报(误)

A. Magic Spheres 题意:你有a,b,c个不同种类的球,两个同种类的球可以合成一个其他种类的球,问你能否使得自己有x,y,z个不同种类的球。 题解:如果a>x那么就有(a-x)/2个多余的球,否则就有(x-a)个缺少的球。其他两种球也这么分析。最后看总数是多余还是缺少。当时秒了这个水题。#include<cstdio>#include<algorithm>#include<cs

2015-12-12 14:18:52 383

原创 lct模板

from popoqqq 指针版 BZOJ 2049洞穴勘测#include<cstdio>#include<algorithm>using namespace std;struct node{ node *fa,*lc,*rc; bool rev; node(); void pushdown();}*null=new node,tree[10010];n

2015-12-08 22:17:34 1088

原创 莫队算法笔记

莫队算法用于解决不带修改的离线区间问题。 其主要思想是这样的: 先已知区间[L,R]的答案为ans,如果求出区间[L+1,R],[L-1,R],[L,R-1],[L,R+1]的时间均为alpha(),那么就可以在alpha()的时间内转移一个单位区间,求出答案ans’。 因此,我们可以通过安排查询的顺序来使得转移次数尽量少。 可以用平面最小曼哈顿距离生成树来确定查询顺序,不过有一个更好写的方

2015-12-08 22:06:20 1440

原创 POJ 2887 Big String(块状链表)

先建块状链表,然后插入操作就是把块内元素位置在pos后的全部后移一位,再插入新的元素,如果元素个数大于2000就split 这样写不用merge。。。 find就是先找到块再找到位置输出来#include<iostream>#include<cstring>#include<cstdio>using namespace std;struct blocklist{ struct b

2015-12-08 21:32:46 579

原创 二次同余方程模合数的一般解法

0.不讨论复杂情况的解释 对于一般的二次同余方程形如 可以通过配方化为下式 可通过换元,得到 解出X的取值,然后用2ax+b回带,用扩展欧几里得解线性同余方程就可以得到方程本来的解 注意上式得到了一般二次同余方程的形式,即 下文讨论上式的一般解法,并给出代码进行解释1.朴素的二次同余方程的解法 因为,因此很明显可以直接枚举。时间复杂度,如果m稍微大一些效率就会很低2.对

2015-12-05 20:50:29 12403 1

lucas定理扩展论文

讲述了lucas定理如何求C(n,m)%p^k

2015-08-19

NOI2015试题

NOI2015试题,有2天的题= = PDF格式的,压缩了一下

2015-07-19

空空如也

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

TA关注的人

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