首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
●BZOJ 2006 NOI 2010 超级钢琴
】的更多相关文章
[BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆)
[BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆) 题面 给出一个长度为n的序列,选k段长度在L到R之间的区间,一个区间的值等于区间内所有元素之的和,使得k个区间的值之和最大.区间可以相交或包含,但一个区间只能被选1次. \(n,k,L,R \leq 5 \times 10^5\) 分析 先把区间和转化成前缀和.枚举左端点\(i\),右端点的范围为\([i+L-1,\min(i+R-1,n)]\).在这个区间里面找一个前缀和最大的位置p,答案就是\(sum[p]-sum[i…
●BZOJ 2006 NOI 2010 超级钢琴
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2006 题解: RMQ + 优先队列 (+ 前缀) 记得在一两个月前,一次考试考了这个题目的简化版:序列中只有正整数.当时我们曰 :有负数的话就怕是莫得解法哦.然后,有负数的情况居然是NOI题...难哭. 1).首先尝试固定区间的右端点R.那么可取的左端点的范围就已经确定.所以对于右端点为 R的权和最大的区间就能够求出来了:先求出前缀序列 pre[],由于 sum = pre[R]-pre[…
[NOI 2010]超级钢琴
Description 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙 的音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音符的美妙度为Ai,其中Ai可正可负. 一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R.我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和.两个超级和 弦被认为是相同的,当且仅当这两个超级和弦所包含的音符集合是相同的. 小Z决定创作一首由k个超级和弦组成的乐曲,为了使得乐曲更…
解题:NOI 2010 超级钢琴
题面 WC时候写的题,补一下 做法比较巧妙:记录每个位置和它当前对应区间的左右端点,做前缀和之后重载一下小于号,用优先队列+ST表维护当前最大值.这样贡献就是区间最大值和端点左边差分一下,可以O(1)得到.每次从最大值所在位置分裂成两个小的对应区间扔回优先队列里即可. // luogu-judger-enable-o2 #include<cmath> #include<queue> #include<cstdio> #include<cstring> #in…
【BZOJ 2006】[NOI2010]超级钢琴 ST
我们先把所有最左端对应的最优右端入堆,eg: z 在[l,r](由题目给出的L,R决定)之间的最优解 y,然后出堆以后,再入堆z,y-1,z,y+1,那么我们只需要用st找最大前缀和就好了(ST是一种用来解决RMQ问题的方法他的应用也就限于此了) #include <cstdio> #include <cstring> #include <queue> #define make(a,b,c,d) (DT){a,b,c,d} #define MAXN 500000 us…
JZOJ 5409 Fantasy & NOI 2010 超级钢琴 题解
其实早在 2020-12-26 的比赛我们就做过 5409. Fantasy 这可是紫题啊 题目大意 给你一个序列,求长度在 \([L,R]\) 区间内的 \(k\) 个连续子序列的最大和 题解 如此多的子序列并不好处理 设 \(i\) 为一个区间的左端点,那么右端点的区间为 \([i+L-1,i+R-1]\) ,记前缀和为 \(sum_i\) 那么一个区间 \([i,j]\) 的和就是 \(sum_j-sum_{i-1}\) 已经知道左端点 \(sum_i\) ,只要找到最大的 \(sum_j…
[bzoj 2005][NOI 2010]能量采集(容斥原理+递推)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2005 分析:首先易得ans=∑gcd(x,y)*2+1 然后我就布吉岛了…… 上网搜了下题解,设f[i]表示gcd(x,y)=i的实数对的个数,那么ans=∑f[i]*i*2+1 在设g[i]表示i是(x,y)公约数的个数,则g[i]=[m/i]+[n/i] 那么由容斥原理可以得到f[i]=g[i]-∑f[i*j] (2<=j<min([m/i],[n/i])) 那么就倒推就gg了…… O…
●BZOJ 2007 NOI 2010 海拔
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2007 题解: 网络流.最小割.对偶图 奇妙的题 ~ 种种原因导致了高度要么为 0,要么为 1 (1),然后 0,1区域是分离的 (2).对于 (2) 是显然的,因为如果在一片 1的区域中出现了一个 0,那么把 0改为 1一定会更优.而对于 (1) ,就只有感性一点理解了(没看到一个比较理性的讲解). 由于左上角为 0,右下角为 1,所以总会存在有上坡路. 那么为了使上坡导致的体…
●BZOJ 2005 NOI 2010 能量采集
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2005 题解: 一个带有容斥思想的递推.%%% 首先,对于一个点 (x,y) 在路径 (0,0)->(x,y)上,经过的点数为 GCD(x,y)-1所以改点的贡献为 2*GCD(x,y)-1 N M那么,ANS = ∑ ∑(2*GCD(i,j)-1) i=1 j=1显然超时.考虑到 GCD<=100000,那么是否可以求出 f[i] 表…
bzoj 2005 NOI 2010 能量采集
我们发现对于一个点(x,y),与(0,0)连线上的点数是gcd(x,y)-1 那么这个点的答案就是2*gcd(x,y)-1,那么最后的答案就是所有点 的gcd值*2-n*m,那么问题转化成了求每个点的gcd值的Σ 也即:Σi<=n Σj<=m gcd(i,j) 那么首先我们知道Σphi(d) d|n=n,所以我们可以将这个式子转化成 Σi<=n Σj<=m Σ d|gcd(i,j) phi(d) 那么对于矩阵n*m来说,我们将phi(d)累加了floor(n/d)*floor(m/…