哈希
DQSSS
蒟蒻
展开
-
【NOIP2014】解方程 玄学哈希+乱搞
我觉得我考的话最多敲个高精了……n=0 => n%p=0,显然是对的。n%p=0 => n=0,显然是错的。但p多选几个,就极有可能是对的……所以说我们可以对输入给定的数模好几个质数,然后枚举1~m看看有几个能使方程成立,这样能拿70 。满分做法:n%p=(n+kp)%p,所以每次只枚举[0,p-1],然后把倍数筛掉即可。p不能选太大,否则会T。p不能选太小,否则会WA。p不能选太少,否则筛不干净…原创 2015-11-02 15:22:38 · 1258 阅读 · 0 评论 -
【bzoj1014】[JSOI2008]火星人prefix splay+hash+二分
Description火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字符 m a d a m i m a d a m 现在,火星人定义了一个函数LCQ(x, y),表示:该字符串中第x个字符开始的字串,与该字符串中第y个字符开始的字串,两个字串的公共原创 2016-02-15 00:28:11 · 770 阅读 · 0 评论 -
【bzoj2351】[BeiJing2011]Matrix hash表+双hash
Description给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过。 所谓01矩阵,就是矩阵中所有元素不是0就是1。Input输入文件的第一行为M、N、A、B,参见题目描述。 接下来M行,每行N个字符,非0即1,描述原矩阵。 接下来一行为你要处理的询问数Q。 接下来Q个矩阵,一共Q*A行,每行B个字符,描述Q个01矩阵。Output你需要输原创 2016-03-29 23:28:41 · 1048 阅读 · 0 评论 -
【bzoj2795】[Poi2012]A Horrible Poem hash
Description给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。 如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到。Input第一行一个正整数n (n<=500,000),表示S的长度。 第二行n个小写英文字母,表示字符串S。 第三行一个正整数q (q<=2,000,000),表示询问个数。 下面q行每行两个正整数a,b (1<=a<=原创 2016-03-31 22:27:28 · 787 阅读 · 0 评论 -
【bzoj2124】等差子序列 权值线段树维护hash
Description给一个1到N的排列{Ai},询问是否存在1<=p1=3),使得Ap1,Ap2,Ap3,…ApLen是一个等差序列。Input输入的第一行包含一个整数T,表示组数。下接T组数据,每组第一行一个整数N,每组第二行为一个1到N的排列,数字两两之间用空格隔开。Output对于每组数据,如果存在一个等差子序列,则输出一行“Y”,否则输出一行“N”。Sample Input231 3 23原创 2016-04-06 19:29:29 · 1323 阅读 · 0 评论 -
【bzoj4084】[Sdoi2015]bigyration hash
bzoj没有题面,题面在vijos。所以说读入char再丢给string并不会慢…短串扔到hash表里。 长串的前半部分复制一份,然后在上面跑,若长串的后半部分出现过,则答案加上后面的hash值的出现次数。写了双hash+挂链表,因为写了指针,并且双hash常数大,所以TLE+MLE,还有莫名其妙的WA…………自然溢出+map在vijos上就是过不了……T两个点,不过在bzoj还是能A的。看题解有原创 2016-04-13 17:29:40 · 1084 阅读 · 0 评论