dishes专题

uva 1400 - Ray, Pass me the dishes!(线段树)

题目链接:uva 1400 - "Ray, Pass me the dishes!" 题目大意:给定一个长度为n个整数序列,对m次询问作出回答,对于每次询问(a,b),找到两个下标x,y使得x到y的连续和为区间a,b中最大的连续和,如果存在多解优先x小,然后y小。 解题思路:线段树,对于每个节点维护三个线段值: max_sub:区间连续最大和max_prefix:区间连续前缀最大和ma

UVA 1400 1400 - Ray, Pass me the dishes!(线段树)

UVA 1400 - "Ray, Pass me the dishes!" 题目链接 题意:给定一个序列,每次询问一个[L,R]区间,求出这个区间的最大连续子序列和 思路:线段树,每个节点维护3个值,最大连续子序列,最大连续前缀序列,最大连续后缀序列,那么每次pushup的时候,根据这3个序列去拼凑得到新的一个结点即可 代码: #include <cstdio>#inc

Ray, Pass me the dishes! UVA - 1400

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4146 线段树区间合并 要求字典序最小的下标是真的恶心 分别维护左端点向右 右端点向左 整个区间的最大值 以及区间权值和 然后pushup就是套路写法了 在UVAlive上死活过不了 搞了一晚上 对拍

UVA1400 Ray, Pass me the dishes! 【线段树 区间合并】

"Ray, Pass me the dishes!" UVA - 1400  https://vjudge.net/problem/UVA-1400   题意 给出一个长度为n的整数序列D,对m个询问做出回答,对询问(a,b)找到(x,y)使得a<=x<=y<=b且Dx+Dx+1+……+Dy最大。如有多组答案取字典序最小的一组。 题解 sum[i]记录结点i控制的区间[l,r]中区间和