P6087 [JSOI2015]送礼物 01分数规划+单调队列+ST表 题目背景 \(JYY\) 和 \(CX\) 的结婚纪念日即将到来,\(JYY\) 来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店很神奇,所有出售的礼物都按照特定的顺序都排成一列,而且相邻 的礼物之间有一种神秘的美感.于是,\(JYY\) 决定从中挑选连续的一些礼物,但究 竟选哪些呢? 题目描述 假设礼品店一共有 \(N\) 件礼物排成一列,每件礼物都有它的美观度.排在第 \(i\ (1\leqslant i\leqslant…
BZOJ_4476_[Jsoi2015]送礼物_01分数规划+单调队列 Description JYY和CX的结婚纪念日即将到来,JYY来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店很神奇,所有出售的礼物都按照特定的顺序都排成一列,而且相邻 的礼物之间有一种神秘的美感.于是,JYY决定从中挑选连续的一些礼物,但究 竟选哪些呢? [问题描述] 假设礼品店一共有N件礼物排成一列,每件礼物都有它的美观度.排在第i 1< =i< =N个位置的礼物美观度为正整数Ai,.JYY决定选出其中连续的一段, 即…
看到这个式子当然先二分答案.得max-min-(j-i+k)ans>=0. 显然max-min相同的情况下所选区间长度越短越好,所以max和min都应该取在边界.那么实际上我们根本不用管端点是否真的是max或min,因为即使不是将他们计入也不会对最终答案造成影响.不妨设右端点是max,则要最大化aj-ai-(j-i)ans=(aj-jans)-(ai-ians),单调队列维护即可.左端点是max同理. 为了防止不存在长度在l~r的这样的区间,先对长度l的区间单调队列暴力跑一次. #include…
[BZOJ4476] [JSOI2015] 送礼物 (01分数规划+ST表) 题面 给出n,k,l,r和序列a,要求从a中选一段连续的区间[i,j]出来,使得M(i,j)-m(i,j)/(j-i+k)最大,且[i,j]长度在区间[l,r]内. M(i,j)表示[i,j]中的最大值,m(i,j)表示[i,j]中的最小值. Ai< =10^8,N,K< = 50,000 分析 看到\(\frac{max(i,j)-min(i,j)}{j-i+k}\)的形式,我们敏感的想到01分数规划.考虑最终答案…
单调栈不断吞入数据维护最值,数据具有单调性但不保证位置为其排名,同时可以按照进入顺序找出临近较值单调队列队列两端均可删除数据但只有队末可以加入数据,仍然不断吞入数据但同时可以额外刨除一些不符合条件的数据,强调额外刨除数据按照进入顺序,维护在有额外刨除条件下的最值,数据具有单调性但不保证位置为其排名也不保证都是合法,丧失可以按照进入顺序找出临近较值的能力 #include <cstdio> typedef long double ld; typedef long long ll; ; ; int…
5281: [Usaco2018 Open]Talent Show Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 79  Solved: 58[Submit][Status][Discuss] Description FarmerJohn要带着他的N头奶牛,方便起见编号为1…N,到农业展览会上去,参加每年的达牛秀!他的第i头奶牛重量为wi,才艺水平为ti,两者都是整数.在到达时,FarmerJohn就被今年达牛秀的新规则吓到了:   (一)参加比…
题意 题目链接 分析 分数规划之后可以得到式子:\(max-min-r*mid+l*mid\geq k*mid\) . 贪心选择,肯定区间的端点是极小或者极大值.特殊处理区间长度 \(\leq L\) 的情况. 有两种情况分别对应 \(r\) 作为最大和最小值. \(r\) 作为最大值:枚举 \(a_r-r*mid\),查询 \(min\{a_l-l*mid\}\)并减去. \(r\) 作为最小值:枚举 \(a_l+l*mid\),查询 \(min\{a_r+r*mid\}\)并减去. 单调队列…
LINK:送礼物 原本想了一个 \(nlog^2\)的做法 然后由于线段树常数过大 T到30. 以为这道题卡\(log^2\)没想到真的有神仙写\(log^2\)的过了 是我常数大了 抱歉. 能过的\(log^2\)的做法是看到了一个 决策单调性优化的dp 证明我不会. 不过由此得到的启示是 一些类似或者就是dp的题目 要多往决策单调性上想 大胆猜想 不管证明. 线段树的做法是二分之后 也是维护dp的决策最优性.发现换set很难更换 所以放弃治疗. 正解是一个log的做法: 考虑 M(i,j)…
[BZOJ3316]JC loves Mkk Description Input 第1行,包含三个整数.n,L,R.第2行n个数,代表a[1..n]. Output 仅1行,表示询问答案.如果答案是整数,就输出整数:否则,输出既约分数“P/Q”来表示. Sample Input 5 3 4 3 1 2 4 5 Sample Output 7/2 HINT 1≤L≤R≤n≤10^5,0≤ai≤10^9,保证问题有解,数据随机生成 题解:直接二分答案,然后每个糖果的权值都变成a[i]-mid,我们需…
http://poj.org/problem?id=1821 当我们在考虑内层循环j以及决策k的时候,我们可以把外层变量i看作定值,以此来优化dp状态转移方程. 题意 有n个工人准备铺m个连续的墙,每个工人有他必须图的一面墙壁Si,最多连续铺Li,每铺一个就花费Ci的钱,问最多要多少钱: 朴素算法很好想,就dp[i][j]维护i工人到这j层墙壁的最大值,对于每个工人去枚举他涂墙壁的开头和结尾然后更新即可. 时间复杂度O(NMM) M的范围是16000,很显然会T,我们考虑状态转移方程. 对于每个…