【BZOJ 3316】JC loves Mkk 01分数规划+单调队列
单调栈
不断吞入数据维护最值,数据具有单调性但不保证位置为其排名,同时可以按照进入顺序找出临近较值
单调队列
队列两端均可删除数据但只有队末可以加入数据,仍然不断吞入数据但同时可以额外刨除一些不符合条件的数据,强调额外刨除数据按照进入顺序,维护在有额外刨除条件下的最值,数据具有单调性但不保证位置为其排名也不保证都是合法,丧失可以按照进入顺序找出临近较值的能力
#include <cstdio>
typedef long double ld;
typedef long long ll;
const ld eps=1e-;
const int N=;
int q[N];
ld key[N<<];
int head,tail;
int n,L,R;
int a[N],ans1,ans2;
inline bool check(ld x){
for(int i=;i<=n;++i)
key[i]=key[i+n]=(ld)a[i]-x;
for(int i=;i<=(n<<);++i)
key[i]+=key[i-];
head=,tail=;
for(int i=L;i<=R;i+=){
while(head<=tail&&key[q[tail]]<key[i])tail--;
q[++tail]=i;
}
if(key[q[head]]>){
ans1=,ans2=q[head];
return true;
}
for(int i=;i<=n;i+=){
while(head<=tail&&key[q[tail]]<key[i+R-])tail--;
q[++tail]=i+R-;
while(head<=tail&&q[head]<(i+L-))head++;
if(key[q[head]]-key[i-]>){
ans1=i,ans2=q[head];
return true;
}
}
head=,tail=;
for(int i=L+;i<=R+;i+=){
while(head<=tail&&key[q[tail]]<key[i])tail--;
q[++tail]=i;
}
if(key[q[head]]-key[]>){
ans1=,ans2=q[head];
return true;
}
for(int i=;i<=n;i+=){
while(head<=tail&&key[q[tail]]<key[i+R-])tail--;
q[++tail]=i+R-;
while(head<=tail&&q[head]<(i+L-))head++;
if(key[q[head]]-key[i-]>){
ans1=i,ans2=q[head];
return true;
}
}
return false;
}
inline ll GCD(ll x,ll y){
return x==?y:GCD(y%x,x);
}
int main(){
scanf("%d%d%d",&n,&L,&R),L+=L&,R-=R&;
for(int i=;i<=n;++i)scanf("%d",&a[i]);
for(ld l=,r=1e9,mid;l+eps<=r;mid=(l+r)/.,check(mid)?l=mid:r=mid);
if(ans1==){printf("");return ;}
ll s=,b=ans2-ans1+;
for(int i=ans1;i<=ans2;++i)s+=a[i>n?i-n:i];
ll gcd=GCD(s,b);s/=gcd,b/=gcd;
if(b==)printf("%lld",s);
else printf("%lld/%lld",s,b);
return ;
}
【BZOJ 3316】JC loves Mkk 01分数规划+单调队列的更多相关文章
- P6087 [JSOI2015]送礼物 01分数规划+单调队列+ST表
P6087 [JSOI2015]送礼物 01分数规划+单调队列+ST表 题目背景 \(JYY\) 和 \(CX\) 的结婚纪念日即将到来,\(JYY\) 来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店 ...
- BZOJ 5281--[Usaco2018 Open]Talent Show(分数规划&单调队列&DP)
5281: [Usaco2018 Open]Talent Show Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 79 Solved: 58[Sub ...
- BZOJ_4476_[Jsoi2015]送礼物_01分数规划+单调队列
BZOJ_4476_[Jsoi2015]送礼物_01分数规划+单调队列 Description JYY和CX的结婚纪念日即将到来,JYY来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店很神奇,所有出售的 ...
- 【BZOJ3316】JC loves Mkk 分数规划+单调队列
[BZOJ3316]JC loves Mkk Description Input 第1行,包含三个整数.n,L,R.第2行n个数,代表a[1..n]. Output 仅1行,表示询问答案.如果答案是整 ...
- BZOJ.4819.[SDOI2017]新生舞会(01分数规划 费用流SPFA)
BZOJ 洛谷 裸01分数规划.二分之后就是裸最大费用最大流了. 写的朴素SPFA费用流,洛谷跑的非常快啊,为什么有人还T成那样.. 当然用二分也很慢,用什么什么迭代会很快. [Update] 19. ...
- BZOJ.4753.[JSOI2016]最佳团体(01分数规划 树形背包DP)
题目链接 \(Description\) 每个点有费用si与价值pi,要求选一些带根的连通块,总大小为k,使得 \(\frac{∑pi}{∑si}\) 最大 \(Solution\) 01分数规划,然 ...
- bzoj 3232: 圈地游戏 01分数规划
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=3232 题解: 首先我们看到这道题让我们最优化一个分式. 所以我们应该自然而然地想到01分 ...
- bzoj 3232 圈地游戏 —— 01分数规划+最小割建图(最大权闭合子图)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3232 心烦意乱的时候调这道题真是...越调越气,就这样过了一晚上... 今天再认真看看,找出 ...
- BZOJ 4753 [Jsoi2016]最佳团体 ——01分数规划 树形DP
要求比值最大,当然用分数规划. 二分答案,转化为选取一个最大的联通块使得它们的和大于0 然后我们直接DP. 复杂度$O(n^2\log {n})$ #include <map> #incl ...
随机推荐
- FROM_UNIXTIME
FROM_UNIXTIME 格式化MYSQL时间戳函数 函数:FROM_UNIXTIME作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示.语法 ...
- python 装饰器 回顾 及练习
# 复习 # 讲作业 # 装饰器的进阶 # functools.wraps # 带参数的装饰器 # 多个装饰器装饰同一个函数 # 周末的作业 # 文件操作 # 字符串处理 # 输入输出 # 流程控制 ...
- (数据科学学习手札03)Python与R在随机数生成上的异同
随机数的使用是很多算法的关键步骤,例如蒙特卡洛法.遗传算法中的轮盘赌法的过程,因此对于任意一种语言,掌握其各类型随机数生成的方法至关重要,Python与R在随机数底层生成上都依靠梅森旋转(twiste ...
- Javaweb——四则运算---18.11.01
---恢复内容开始--- test.jsp <%@ page language="java" contentType="text/html; charset=utf ...
- Lucene如何实现多条件搜索?
有两种方式可以实现, 一是:Lucene搜索API中提供了一个布尔查询器(BooleanQuery),它可以包含多个查询器,每个查询器Occur枚举控制是“and” 还是“or” BooleanQue ...
- 20145202马超 2006-2007-2 《Java程序设计》第2周学习总结
20145202马超 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 第三章主要讲了各种变量的设置以及流程控制,基本上都和c是一样的.print是不太一样的, ...
- RelativeSource设定绑定方向
<Window x:Class="Yingbao.Chapter2.RelativeEx.AppWin" xmlns="http://schemas.microso ...
- Python全栈面试题
Mr.Seven 博客园 首页 新随笔 联系 订阅 管理 随笔-132 文章-153 评论-516 不吹不擂,你想要的Python面试都在这里了[315+道题] 写在前面 近日恰逢学生毕 ...
- 步骤1:JMeter 录制脚本接口测试
JMeter 常用测试方法简介 1.下载安装 http://jmeter.apache.org/download_jmeter.cgi 安装JDK,配置环境变量JAVA_HOME. 系统要求:JMet ...
- Spring常用注解用法总结
转自http://www.cnblogs.com/leskang/p/5445698.html 1.@Controller 在SpringMVC 中,控制器Controller 负责处理由Dispat ...