??
题意:有两种操作,查询操作求区间内的最大子序列,需要保证子序列的下标为奇偶交替的,还有单点修改操作。
思路:对于一个合法的子序列,只有可能是以奇奇,奇偶,偶奇,偶偶为开头和结尾。
线段树维护区间内的这四个值,重载加法运算符简化编程。
#include
#include
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2015-07-29 17:14:49
阅读次数:
100
T组数据
N个数字,M次操作
op=0:找出L-R区间内的最大‘值’
op=1:把a位置的数字换成b
对最大‘值’的定义:取区间内的最大子序列,需要保证子序列的下标为奇偶交替的
用线段树分别记录每个区间的
ee:以偶数下标开始偶数下标结束的最大和
eo:以偶数下标开始奇数下标结束的最大和
oe:以奇数下标开始偶数下标结束的最大和
oo:以奇数下标开始奇数下标结束的最大和
...
分类:
其他好文 时间:
2015-07-28 18:42:04
阅读次数:
122
#include #include #include using namespace std;int tmp[30][3];int dp[100];class Node{public: int x; int y; int h; bool operator >n&&n!=0) ...
分类:
其他好文 时间:
2015-07-22 20:41:30
阅读次数:
188
1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 class Node 8 { 9 public:10 int x;11 int y;12 bool operator >T;33 w...
分类:
其他好文 时间:
2015-07-22 20:24:25
阅读次数:
102
这篇博客我准备写一些我见过的算法,虽然现在我见过的还很少,但我相信会越来越多,方便日后自己查阅好了 开始了求解最大子序列和的最有效的算法 1 int MaxSubsequenceSum(const int A[], int N) 2 { 3 int ThisSum, MaxSum, j; 4 ...
分类:
编程语言 时间:
2015-07-19 23:26:00
阅读次数:
221
题意:n个数,分成m段,求这m段的最大和,段之间不能交叉。
分析:
这题跟最大子序列和的区别在于要求分成m段,所以做法就千差万别了。实际的做法倒有点像分组dp(将n个数分成m组),但是本题与上次写的两道分组dp(搬寝室和特殊的筷子)的不同是:上两题每组选两or三个元素,本题不确定每一段要选多少个元素;上两题先排序再做,这题只能根据序列原定顺序走。
本题难点:
1.状态:dp[i][j]在确...
分类:
其他好文 时间:
2015-07-18 14:13:24
阅读次数:
219
题意:有一个n*n的格子,每个格子里有不同数量的食物,老鼠从(0,0)开始走,每次下一步只能走到比当前格子食物多的格子,有水平和垂直四个方向,每一步最多走k格,求老鼠能吃到的最多的食物。
分析:
矩阵上求最大子路线和,但是不像一维的最大子序列那么容易,因为二维的确定不了计算顺序;
既然不能确定计算顺序,那么就可以利用dp记忆化搜索,这个正好不用管计算顺序;
dp记忆化搜索的思想:递归,然后...
分类:
其他好文 时间:
2015-07-17 19:05:12
阅读次数:
133
题意:一个序列,在其中一个数必须替换成给定数字p的条件下,求最大连续子序列之和。依次把每一个数替换成p,求每次的最大连续和,找出最大值。O(n^2)。#include #include #include #include typedef long long ll;using namespace st...
分类:
其他好文 时间:
2015-07-15 22:14:10
阅读次数:
110
1001Senior's Array题目链接:1001题意:给你一个长度为n的序列,你必须修改序列中的某个数为P,求修改后的最大连续子序列和。思路:数据量比较小,可以直接暴力做, 枚举序列的每个数修改成P,然后更新最大子序列和。code: 1 #include 2 #include 3 usin.....
分类:
其他好文 时间:
2015-07-12 10:55:34
阅读次数:
119
题目链接:点击打开链接
题目大意:给出n个数排成一个环,求环的最大连续子序列,不能是总序列
建一个线段树来求最大子序列如果只是一个序列,那么求最大连续子序列很简单,但是如果是一个环,那就要考虑断点的问题,因为结果可能是由左边一部分+右边一部分,这样的结果用线段树没法统计到,所以需要转换一下:
求最大连续子序列 = 总和 - 最小连续子序列
那么题目就很简单了,要统计出每一段的最大连续子序列...
分类:
其他好文 时间:
2015-07-11 16:52:35
阅读次数:
136