码迷,mamicode.com
首页 >  
搜索关键字:前缀和    ( 2330个结果
RMQ模板
RMQ:范围最小值问题。给出一个n个元素的数组A1,A2,...,An,设计一个数据结构支持查询操作Query(L,R):计算min{AL,AL+1,...,AR}。 每次用一个循环来求最小值显然不够快快,前缀和的思想也不能提高效率,这时候ST算法就派上用场了,它预处理的时间是O(nlogn),但是
分类:其他好文   时间:2016-02-27 17:57:40    阅读次数:158
[Leetcode]Longest Common Prefix
No.14,Longest Common Prefix 这道题的输入是一个字符串数组,从里面找出最长的公共前缀。 解题思路:从第一个字符串和第二个字符串开始找寻最长公共前缀,再将最长公共前缀和第三个字符串比较,以此类推,遍历全部字符串,找出最后的公共前缀。 优化点在于,最长公共前缀的长度一定小于等于
分类:其他好文   时间:2016-02-26 21:55:53    阅读次数:206
Python学习笔记1——Python基础
一. 数据类型和变量 整数:十六进制用0x前缀和0-9,a-f表示 浮点数:小数,科学计数法:10用e代替;整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(包括除法),浮点数运算则可能会有四舍五入的误差 字符串和编码 (1)以单引号‘或双引号“括起来的任意文本。 (2)可以用转义字
分类:编程语言   时间:2016-02-25 13:43:16    阅读次数:274
bzoj2653: middle
首先,对于每个询问,我们二分答案 然后对于序列中大于等于中位数的数,我们把它们置为1,小于中位数的数,置为-1 那么如果一个区间和大于等于0,那么就资磁,否则就不滋磁 这个区间和呢,我们可以用主席树维护前缀和 [c,d]上的最大前缀和减去[a-1,b-1]上的最小前缀和,就是所有可用区间的最大区间和
分类:其他好文   时间:2016-02-24 22:29:09    阅读次数:294
Educational Codeforces Round 8(E. Zbazi in Zeydabad(树状数组优化))
题目链接:点击打开链接 题意:一个n*m矩阵, 里面的格子除了'z'就是'.',问有多少个z形图案。 思路:因为n和m很大, 即使n^3复杂度也会超时。  如果按照最朴素的方法, 我们可以处理一下前缀和, 处理出一个格子向左l[i][j]、向右r[i][j]、斜向左下lr[i][j]连着的z到哪里为止, 这样我们用n^2复杂度枚举每一个格子作为z形图案的右上角,取min(l[i][j], lr...
分类:编程语言   时间:2016-02-24 09:48:18    阅读次数:254
CodeForces 629C Famil Door and Brackets
DP。听了同学的讲解才会的。 具体做法:dp[i][j]表示长度为 i 的括号串,前缀和(左括号表示1,右括号表示-1)为 j 的有几种。 状态转移很容易得到:dp[i][j]=dp[i - 1][j + 1]+dp[i - 1][j - 1],表示 i 这位分别放上右括号和左括号。 然后就是要处理
分类:其他好文   时间:2016-02-23 11:11:56    阅读次数:162
【UVA 1451】Average
题 题意 求长度为n的01串中1占总长(大于L)的比例最大的一个子串起点和终点。 分析 前缀和s[i]保存前i个数有几个1,[j+1,i] 这段区间1的比例就是(s[i]-s[j])/(i-j),于是问题转换为找斜率最大的两个点。 如图,加入j时,就要去掉b1、b2,才能维护斜率的单调递增。 以队列
分类:其他好文   时间:2016-02-20 07:01:36    阅读次数:185
【HDU 1003】 Max Sum
题 题意 需要在o(n)时间内,求最大连续的子序列的和,及其起点和终点。 分析 一种方法是一边读,一边维护最小的前缀和 s[i] ,然后不断更新 ans = max(ans,s[j] - s[i]),以及起始位置。 另一种方法是尺扫(算是吧),l 和 r 代表起点和终点,一开始l=0,r=1,如果s
分类:其他好文   时间:2016-02-17 14:24:46    阅读次数:141
HUST 1351 Group
简单DP。dp[i][j]表示把前i个数字分成j段的最优解, 递推式很容易写: (其中sum[]是前缀和;p <= i - L,并且前p个数能分成j-1段,下文不再说明p的范围,都是一样的) 得到递推式之后暴力DP的话复杂度为o(n*n*k),显然超时。 递推式可以变形成这样: 现在,想求得dp[i
分类:其他好文   时间:2016-02-17 12:30:18    阅读次数:130
uvalive 3938 "Ray, Pass me the dishes!" 线段树 区间合并
题意:求q次询问的静态区间连续最大和起始位置和终止位置 输出字典序最小的解. 思路:刘汝佳白书 每个节点维护三个值 pre, sub, suf 最大的前缀和, 连续和, 后缀和 然后这个题还要记录解的位置所以还要区间总和sum 1 #include<iostream> 2 #include<stri
分类:其他好文   时间:2016-02-16 20:44:35    阅读次数:202
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!