Luogu P5745 区间最大和】的更多相关文章

#include <iostream> #include <stdio.h> #include <algorithm> #define lson rt<<1,L,mid #define rson rt<<1|1,mid+1,R /* AC 水题 题意:给出n个数,两种操作 U i x 将第i个数改成x Q x y 查询[x,y]中两个数的和的最大值,这两个数不能为同一个 即只要求该区间第一大和第二大的数,他们的和即为答案 */ using nam…
题意: 给定一个矩阵,矩阵上有若干点,每个点有正或负的权值,找一个方框框住一些点使得方框中点权值最大. 题解: 离散化横纵坐标,容易将这个问题转化为在矩阵上求最大和子矩阵的问题. 普通的n*n的矩阵的子矩阵最大和正解为$O(n^3)$,枚举上下端点后dp 然而此题是一个稀疏矩阵,n*n矩阵中只有O(n)个点,要求$O(n^2logn)$解法. 正解是枚举上下端点,用线段树维护区间最大和,每枚举到一个下端点,将这个下端点上所有的点的权值更新到线段树上,每次更新logn 由于点的个数是O(n)的,因…
题意:给出n个区间,求选择一些区间,使得一个点被覆盖的次数超过m次,最小的花费.花费指的是选择的区间中最大长度减去最小长度. 坐标值这么大,n比较小,显然需要离散化,需要一个技巧,把区间转化为半开半闭区间,然后线段树的每一个节点表示一个半开半闭区间. 接着我们注意到需要求最小的花费,且这个花费只与选择的区间集合中的最大长度和最小长度有关. 这意味着如果最大长度和最小长度一定,我们显然是需要把中间长度的区间尽量的选择进去使答案不会变的更劣. 不妨把区间按长度排序,枚举每个最小长度区间,然后最大区间…
AC得相当辛苦的一道题.似乎不难,可是须要想细致, 開始的时候的错误思路----是受之前做过的区间最长连续子串影响http://blog.csdn.net/u011026968/article/details/38357157 区间合并的时候,我直接依照---假设(左子树的最大前缀和长度==左子树的长度 && 右子树的前缀和>0).就合并左前缀,这想法有两个错误:1.右子树的前缀和==0的时候是不是要合并区间呢?题目要求x尽量小,假设x同样y尽量小(x是ans的区间左端点.y是Ans…
题目链接:P5745 [深基附B例]数列求和 现在想说:\(O(N)\)的题要不怎么也想不出来,要不灵光乍现,就像这道题. 我们维护一个类似单调队列的加法单调队列: 若相加大于此数,就将队尾元素弹出,直至满足条件,顺便更新下\(maxn\)值即可. 然后遇见了烦人的头尾双指针,多了个等号就只有\(30\;pts\)了. \(Code\): #include<iostream> #include<cstdio> using namespace std; long long sum=0…
题面版权来自Shlw.题目链接 题目背景 无 题目描述 给定一个数列,元素均为正整数,对其以下两种操作: 1.将某区间每一个数变为其算术平方根(取整) 2.求出某区间内所有数的最大值 输入输出格式 输入格式: 第一行包含两个整数$n$,$m$,分别表示该数列数字的个数和操作的总个数.第二行包含n个用空格分隔的整数,表示给定的数列.接下来m行,每行包含3个整数,表示一个操作,具体如下: 操作1:1 $x$ $y$ 含义:将区间[$x$,$y$]内每个数进行开方. 操作2:2 $x$ $y$ 含义:…
题目背景 无 题目描述 给定一长度为n的动态序列,请编写一种数据结构,要求支持m次操作,包括查询序列中一闭区间中所有数的GCD,与对一闭区间中所有数加上或减去一个值. 输入输出格式 输入格式: 第1行两个数n,m,表示序列长度和操作次数. 第2行n个数ai,表示给定序列. 第3行至第m+2行,每行3~4个数: (1) 1 x y k 表示将[x,y]上的所有数加上k. (2) 2 x y 表示询问[x,y]上所有数的GCD. 输出格式: 对所有操作2,输出一个数,表示询问结果. 输入输出样例 输…
又来了个维护方差的线段树.... 大致推导过程(字丑多包涵QAQ) 注意取模时要加一些100000007防止出现负数.. #include<cstdio> #include<iostream> #define ll long long #define R register long long #define ls (tr<<1) #define rs (tr<<1|1) using namespace std; ; int n,m; inline ll g(…
\(f_{i, j, a, b}\) 表示当前一共有 \(i\) 人排队, \(j\) 名男生,男生数目 - 女生数目为 \(a\), 女生数目 - 男生数目为 \(b\),\(a, b >= 0\) 转移显然 #include <bits/stdc++.h> const int N = 160, Mod = 12345678; int f[N << 1][N][25][25]; int n, m, k; int main() { std:: cin >> n &…
Luogu 1315 [NOIP2011]观光公交 (贪心) Description 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0 分钟出现在1号景点,随后依次前往2.3.4--n 号景点.从第i 号景点开到第i+1 号景点需要Di 分钟. 任意时刻,公交车只能往前开,或在景点处等待. 设共有m 个游客,每位游客需要乘车1 次从一个景点到达另一个景点,第i 位游客在Ti 分钟来到景点Ai,希望…