感觉和栈那一讲一样简单啊。。 poj2259 这个乱搞硬模拟吧。。。没更新last WA了N次。。。(叫你懒得写拍) #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> ...
分类:
其他好文 时间:
2018-07-01 20:59:20
阅读次数:
166
/** * 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n], * 求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。 * 当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: * Max{0,a[i]+a[i+1]+…+a[j]},1... ...
分类:
其他好文 时间:
2018-07-01 14:12:56
阅读次数:
136
其实网上有很多分治法求最大字段和的文章,但是说实在的,show me the code对于算法初学者来说is cheap 应该改为show me the example ,只有这样结合概念才能比较好的理解算法,而不是看着伪码不知所云的敲着代码,就以为自己掌握了 首先最大子序列只会出现下面三种情况: ...
分类:
其他好文 时间:
2018-06-27 18:52:04
阅读次数:
147
``` include using namespace std; const int MAXN=200005; int dp[MAXN],a[MAXN],n,ans= 100000; int main(){ scanf("%d",&n); for(int i=1;i ...
分类:
其他好文 时间:
2018-06-25 11:14:15
阅读次数:
148
一看就知道是dp了... 转移方程f[i]=max(f[i-1]+d[i],d[i]) 主要是起始位置和结束位置的标记有点困难 这里用两个临时变量s,e表示当前组的起始位置和结束位置 可以这么想 一旦f[i-1]+d[i]<d[i],就说明可以新开一组,s=i,否则e++ 只要当前最大和ans1<f ...
分类:
其他好文 时间:
2018-06-20 22:43:53
阅读次数:
217
题意翻译 nnn 个数, qqq 次操作 操作0 x y把 AxA_xAx? 修改为 yyy 操作1 l r询问区间 [l,r][l, r][l,r] 的最大子段和 感谢 @Edgration 提供的翻译 题目描述 You are given a sequence A of N (N <= 5000 ...
分类:
其他好文 时间:
2018-05-30 19:16:35
阅读次数:
149
SPOJ GSS系列真是有毒啊! 立志刷完,把线段树搞完! 来自lydrainbowcat线段树上的一道例题。(所以解法参考了lyd老师) 题意翻译 n 个数, q 次操作 操作0 x y把 Ax 修改为 y 操作1 l r询问区间 [l,r] 的最大子段和 数据规模在50000,有负数。 冷静分析 ...
分类:
其他好文 时间:
2018-05-27 10:48:18
阅读次数:
162
第一次写博客.... 一道icpc选拔赛的水题.. 题目大意:给你一个整数的循环序列,也就是头尾相接的序列,要求找出最大的一段子段和(循环意义下的) 也就是常求的最大子段和问题,只不过这次数组头尾相接了而已 思路1:通常的方法就是复制这个整数数组接到原数组的后面,这样就变成了求有上下限的最大子段和问 ...
分类:
其他好文 时间:
2018-05-12 22:32:33
阅读次数:
211
哈哈哈哈就在快要放弃的时候盯着眼前画的图片突然之间柳暗花明( ? ?ω?? )? 首先,最大子段和想必大家都会做:对于每一个节点而言,只有选与不选两种可能的情况,枚举即可,贪心的省去一定不优的情况。然后再来考虑:如果没有环的话我们可以怎么做?没有环的情况下,我们所要做的就是找出不交叉的两个最大子段和 ...
分类:
其他好文 时间:
2018-05-12 19:26:04
阅读次数:
163
题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题。一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题。于是当日课后,小明就向老师提出了这个问题: 一株奇怪的花卉,上面共连有N 朵花,共有N-1条枝干将花儿连在一起,并且未 ...
分类:
其他好文 时间:
2018-05-08 16:42:15
阅读次数:
168