码迷,mamicode.com
首页 >  
搜索关键字:前缀和    ( 2330个结果
搞定编程大赛必知哪10个算法?
动态规划(DP)似乎占据了大部分的编程竞赛题目,乃至三分之一。当然,DP也不是一个学一次就Ok的单一算法。 这还取决于你是否把数据结构与算法放在同一个等级中考虑。如果你想要在编程竞赛中一展风采的话,当然,有些数据结构是你应该熟悉的。其中最重要的有范围树(Range Tree,也被称为线段树或区间树)和树状数组(BITs),也被称作Fenwick树。除此之外,许多DP算法使用了一个前缀和数组(prefix sum array)。 能想到的最精华的单一算法如下所列,排名不分先后。绝大多数非动态规划问题似乎都...
分类:编程语言   时间:2014-10-22 15:56:48    阅读次数:208
CF R274 Div2 E Riding in a Lift DP
先预处理出能到当前点的区间,然后通过前缀和求得当前值即可。#include #include #include #include #include #include #include #include #include #include using namespace std; #define MP...
分类:其他好文   时间:2014-10-21 23:06:45    阅读次数:274
KMP小结
next数组表示的是,最长前缀和后缀相等的长度。 #include #include #include #include using namespace std; const int N=1000000; int next[N]; char s[N],t[N]; /*********KMP小结**********/ //求next数组 void getNext(int lt) { ...
分类:其他好文   时间:2014-10-20 23:26:53    阅读次数:294
Codeforces Round #274 Div.1 C Riding in a Lift --DP
题意:给定n个楼层,初始在a层,b层不可停留,每次选一个楼层x,当|x-now| b时, 那么dp[i][j] += dp[i-1][(j与b的中点(以下))~n]由于dp[i][j]的值只跟dp[i-1][]的一些值有关,所以用滚动数组会大大减小内存。用一个sum[i][j]维护前缀和即可。代码:...
分类:其他好文   时间:2014-10-20 11:32:25    阅读次数:147
Codeforces 480C Riding in a Lift dp
题目链接:点击打开链接 题意: 给定 n a b k 构造一个长度为k的序列。 使得序列中 对于任意两个相邻的数 | w[i-1] - w[i] | 且第一个数 |a - w[1] | 问: 有多少种不同的序列。 思路:dp 对于粗暴的dp复杂度是 n^3 我们可以用前缀和来优化掉一维的dp。。 反正是简单粗暴的题。具体看代码吧。。 #include ...
分类:其他好文   时间:2014-10-19 23:19:10    阅读次数:179
Period (poj 1961&&hdu 1358)KMP
题意:求长度为i(2<=i<=N)的前缀,若前缀是一个周期串,则输出长度i和它的最大周期;要找出所有满足条件的。 思路:next[i]数组里面存的是i位置前 字符串的相同前缀和后缀的最大长度,若它是一个周期串,那它必满足i%(i-next[i])==0....
分类:其他好文   时间:2014-10-19 14:22:14    阅读次数:215
Codeforces Round #271 (Div. 2)D(递推,前缀和)
很简单的递推题。d[n]=d[n-1]+d[n-k]注意每次输入a和b时,如果每次都累加,就做了很多重复性工作,会超时。所以用预处理前缀和来解决重复累加问题。最后一个细节坑了我多次:printf("%I64d\n",(s[b]-s[a-1]+mod)%mod);这句话中加mod万万不能少,因为理论上...
分类:其他好文   时间:2014-10-16 04:54:52    阅读次数:168
POJ3061 Subsequence(二分前缀和法+尺取法)
二分+前缀和法 满足条件的子序列长度在(0,n)之间,sum[x+i]-sum[i]为从从第i个元素开始序列长度为x的元素的和。前缀和可在O(n)的时间内统计 sum[i]的值。再用二分找出满足条件的最小的子序列长度。 #include #include #include #include #include #include #include #include #include #inclu...
分类:其他好文   时间:2014-10-15 00:09:19    阅读次数:251
【vijos】1750 建房子(线段树套线段树+前缀和)
https://vijos.org/p/1750是不是我想复杂了。。。。自己yy了个二维线段树,然后愉快的敲打。但是wa了两法。。。。。。。sad原因是在处理第二维的更新出现了个小问题,sad。void pushup1(int x) { for1(i, 1, mm#include #include ...
分类:其他好文   时间:2014-10-14 21:15:47    阅读次数:267
HDU 5056 Boring count
题解:前缀和计算统计。#include #include using namespace std;typedef long long LL;LL ans; char s[100010];int T,k,t[200],i,j,n;int main(){ scanf("%d",&T); wh...
分类:其他好文   时间:2014-10-14 17:17:19    阅读次数:119
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!