题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5776 求是否有区间的和是m的倍数 预处理前缀和,一旦有两个数模m的值相同,说明中间一部分连续子列可以组成m的倍数。 证明:若 x % m = b 且 y % m = b,那么x可以写成x = a1 * ...
分类:
其他好文 时间:
2016-08-01 15:21:33
阅读次数:
135
显然只有横向和纵向的两个炮塔才有可能冲突。 考虑最小割,将每个炮塔所有能攻击到的位置建点,相邻之间连无穷的边,表示前缀和关系,即选了一个点,就必须要选所有比它近的点。 属于横向炮塔的点向$S$连边,容量为前缀最大值的差值;属于纵向炮塔的点向$T$连边,容量为前缀最大值的差值。 对于一个交点,则在两个 ...
分类:
其他好文 时间:
2016-07-31 20:48:21
阅读次数:
181
题意:给定 n 个数,和 m,问你是不是存在连续的数和是m的倍数。 析:考虑前缀和,如果有两个前缀和取模m相等,那么就是相等的,一定要注意,如果取模为0,就是真的,不要忘记了,我当时就没记得。。。。 代码如下: ...
分类:
其他好文 时间:
2016-07-31 17:49:10
阅读次数:
190
分析(官方题解): 一点感想: 首先上面那个等式成立,然后就是求枚举gcd算贡献就好了,枚举gcd当时赛场上写了一发O(nlogn)的反演,写完过了样例,想交发现结束了 吐槽自己手速慢,但是发了题解后发现,这题连O(n)欧拉函数前缀和的都卡了,幸亏没交,还是太年轻 对于官方题解说sqrt(n)优化( ...
分类:
其他好文 时间:
2016-07-31 15:51:12
阅读次数:
358
A题 子序列和啊,就要想到前缀和的差。这个转换一定要!记着!那么i到j的一段子序列和Sij%m == 0就等价于(Sj-Si-1)%m == 0 了,那么什么意思呢?就是如果有两段前缀和%m的模是一样的,那么是不是就存在着一段子序列满足条件了,然后注意一下边边角角应该就没问题了。因为ZOJ坏掉了,所 ...
分类:
其他好文 时间:
2016-07-31 12:59:14
阅读次数:
156
题目链接:hdu_5776_sum 题意: 给你一串数,问你是否有一个连续的子序列的和胃m的倍数 题解: 维护一个前缀和%m的值,如果前缀和%m的值为0或者有两个前缀和%m的值相同,那么就有一个连续区间的和为m的倍数 1 #include<bits/stdc++.h> 2 #define F(i,a ...
分类:
其他好文 时间:
2016-07-31 00:13:32
阅读次数:
299
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5776 题目让你求是否有区间的和是m的倍数。 预处理前缀和,一旦有两个数模m的值相同,说明中间一部分连续子列可以组成m的倍数。 sum Time Limit: 2000/1000 MS (Java/Oth ...
分类:
其他好文 时间:
2016-07-31 00:04:18
阅读次数:
173
bzoj3155Preprefix sum 题意: 询问一个数组前缀和数组的前缀和,支持单点修改。 题解: SSi=sigma(i,1,n)(n-i+1)*ai=(n+1)*Si-sigma(i,1,n)i*ai。然后就只要用树状数组维护ai和i*ai的前缀和就行了。 代码: 20160630 ...
分类:
其他好文 时间:
2016-07-30 14:51:05
阅读次数:
127
简介KMP大家都耳熟能详,扩展KMP只是一个扩展版而已,字面意思啦!
我记得以前打过这个复习小记的,但是不知为何失踪了。KMP与扩展KMP的对比KMP的next[i]表示从1到i的字符串s,前缀和后缀的最长重叠长度。
EXKMP的next[i]表示从1到i的字符串s,和从i到n的字符串st的最长重叠长度。
也就是说KMP是向前的匹配,EXKMP是向后匹配。
扩展KMP问题是KMP问题的补充和...
分类:
其他好文 时间:
2016-07-30 00:34:12
阅读次数:
146
先说说kmp模板,本质就是先求小字符串的next数组,即对每个位置i,next[i]以i位置为终点,前缀和后缀相等的最大长度 求出之后以小字符串为基准类似去求大字符串的next,从而根据需要的到数据 参考博客 http://www.cnblogs.com/c-cloud/p/3224788.html ...
分类:
其他好文 时间:
2016-07-29 17:08:30
阅读次数:
155