BZOJ3795 : 魏总刷DP

对于HARD:

需要满足$k+u[i]\times k\leq T+late[i]$。

对于EASY:

需要满足$k+u[i]\times k\leq T-rest[i]$。

故对于HARD,设$a[i]=-late[i]$,对于EASY,设$a[i]=rest[i]$,并将所有题目的$u[i]$都$+1$。

那么需要满足$\max(u[i]\times k+a[i])\leq T$。

求出这些直线形成的下凸壳,分段积分即可。

时间复杂度$O(n\log n)$。

 

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=100010;
const double eps=1e-9;
int n,i,x,q[N],t;char ch[9];double m,L,R,f[N],ans;
struct P{int k,b;}a[N];
inline bool cmp(const P&a,const P&b){return a.k==b.k?a.b>b.b:a.k<b.k;}
inline double pos(int x,int y){return 1.0*(a[x].b-a[y].b)/(a[y].k-a[x].k);}
inline int sgn(double x){if(x>eps)return 1;if(x<-eps)return -1;return 0;
}
inline void cal(double l,double r,int k,int b){l=max(l,0.0),r=min(r,min(m,(R-b)/k));if(l+eps>r)return;double mid=min(max((L-b)/k,l),r);ans+=(mid-l)*(R-L)+(R-b)*(r-mid)-(r*r-mid*mid)*k/2;
}
int main(){scanf("%d%lf%lf%lf",&n,&m,&L,&R);for(i=1;i<=n;i++)scanf("%d",&a[i].k),a[i].k++;for(i=1;i<=n;i++){scanf("%s%d",ch,&x);if(ch[0]=='H')a[i].b=-x;else a[i].b=x;}sort(a+1,a+n+1,cmp);for(q[t=1]=1,i=2;i<=n;i++)if(a[i].k>a[i-1].k){while(t>1&&sgn(pos(q[t-1],q[t])-pos(q[t],i))>=0)t--;q[++t]=i;}for(f[t]=m,i=1;i<t;i++)f[i]=pos(q[i],q[i+1]);for(i=1;i<=t;i++)cal(f[i-1],f[i],a[q[i]].k,a[q[i]].b);return printf("%.4f",ans/m/(R-L)),0;
}

  

转载于:https://www.cnblogs.com/clrs97/p/7143889.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息学竞赛相关优秀文章合集[持续更新]

线段树详解 &#xff08;原理&#xff0c;实现与应用&#xff09;可持久化线段树 简介 运用伸展树解决数列维护问题.pdfSplay 学习笔记&#xff08;一&#xff09;Splay 学习笔记&#xff08;二&#xff09;Splay 学习笔记&#xff08;三&#xff09; 请要相信我&#xff0c;30…

ceres-solver学习笔记

前一段时间总有一个想法&#xff0c;那就是&#xff0c;我只直到视觉slam是远远不够的&#xff0c;激光slam仍然是一个比较稳妥的技术&#xff0c;好落地&#xff0c;应用广泛&#xff0c;我想着&#xff0c;如果我学会了会大大增加自己的核心竞争力&#xff0c;所以我抽时间开…

几款常见的视频格式转换器

在短视频占半壁江山的时候&#xff0c;关于体积、格式等成了困扰人们的因素&#xff0c;视频太大不利于传播&#xff0c;比如微信里就限制了传输的大小不得超过20M&#xff0c;所以其实说起来工作上QQ的性能远超微信。今天这里小编给大家总结几款常用的视频转换器&#xff0c;希…

PHP Shell生成工具Weevely

PHP Shell生成工具WeevelyWeevely是一款模拟Telnet连接的PHP Shell工具。它不提供网页形式的接口&#xff0c;而是提供一个命令形式的终端。渗透测试人员首先使用该工具生成对应的PHP网页。然后&#xff0c;将该网页上传到目标Web服务器上。渗透人员就可以在终端连接该页面&…

ceres学习之平面拟合

背景&#xff1a;orb-slam2最终保存的轨迹形成的平面是一个倾斜的&#xff0c;这个与相机初始化位置有关&#xff0c;但是有些时候&#xff0c;我们需要的是一个2d的轨迹的试图&#xff0c;直接将轨迹向某一个平面投影的话。 得到的估计是失真的&#xff0c;所以我们需要对轨迹…

二维树状数组模板(区间修改+区间查询)

二维树状数组模板(区间修改区间查询) 例题&#xff1a;JOIOI上帝造题的七分钟 一共两种操作&#xff1a; \(L\ x_1\ y_1\ x_2\ y_2\ d\)&#xff1a;把\((x_1,y_1)\)&#xff0c;\((x_2,y_2)\)这个矩形内所有元素加\(d\)。\(k\ x_1\ y_1\ x_2\ y_2\)&#xff1a;查询\((x_1,y_1…

egg(110,111,112)--egg之微信支付

微信支付前的准备工作 准备工作 准备工作&#xff1a;个体工商户、企业、政府及事业单位。需要获取内容 appid&#xff1a;应用 APPID&#xff08;必须配置&#xff0c;开户邮件中可查看&#xff09;MCHID&#xff1a;微信支付商户号&#xff08;必须配置&#xff0c;开户邮件中…

解决图片跨域问题

var imgs new Image(); imgs.crossOrigin "Anonymous"; //注意存放顺序 imgs.src "http://192.168.0.107/ZHCX/CGZSIMG/1.jpg"; imgs.onload function () { var canvas document.createElement(canvas); canvas.width imgs.width; canvas.height i…

旋转三维平面与某一坐标平面平行

在上一篇文章&#xff08;https://blog.csdn.net/weixin_38636815/article/details/109495227&#xff09;中我写了如何使用ceres&#xff0c;根据一系列的点来拟合一个平面&#xff0c;很难保证ORB-SLAM输出的轨迹严格与某一个坐标平面平行&#xff0c;所以这篇文章我我将说一…

elasticsearch的插件安装

目前使用的是2.4.5版本的es 安装的时候注意以下几点 : 1.如果想所有的ip都能访问es,需要修改config下的elasticsearch.yml.修改如下 network.host0.0.0.02.安装查询插件 : 进入es的安装目录,执行以下命令 ./bin/plugin install mobz/elasticsearch-head3.安装删除插件 目前不支…

let const缓存for循环的中间变量

es5中使用在for-in for循环中注册异步事件&#xff0c;异步事件中的i总是最后一个值。使用es6的let const可以解决 let obj {a: 1,b: 1,c: 1 }// es5 for循环中 var声明 i let funcs [] for (var key in obj) {funcs.push(() > {console.log(key)}) } funcs.forEach(func …

BZOJ1439 : YY的问题

考虑容斥&#xff0c;枚举哪些不存在的边选中了&#xff0c;剩下的不管&#xff0c;则可以用组合数计算方案数。 时间复杂度$O(m2^mnm)$。 #include<cstdio> const int N550,B10000,MAXL350; int n,m,S,i,j,e[N][2],g[N],f[N]; inline int max(int a,int b){return a>…

windows下配置opencv

我的windows下是使用的一个镜像安装的vs2015&#xff0c;然后在vs上编译工程需要使用opencv时&#xff0c;需要在工程中配置opencv 新建一个C工程&#xff0c;按照下面的步骤进行配置。 设置opencv的环境变量 “此电脑”右键点击“属性”-->选择“高级系统设置”-->选…

关于spring MVC中加载多个validator的方法。

首先讲下什么叫做validator&#xff1a; validator是验证器&#xff0c;可以验证后台接受的数据&#xff0c;对数据做校验。 SpringMVC服务器验证有两种方式,一种是基于Validator接口,一种是使用Annotaion JSR-303标准的验证。 1.使用Annotaion JSR-303标准的验证 使用这个需要…

面试时,面试官到底在考察什么?

作者&#xff1a;白海飞出处&#xff1a;极客时间《面试现场》专栏 先看一段面试对话&#xff0c;“大面”是一位久经沙场的面试官&#xff0c;小明就是今天的应聘者。一通面试下来&#xff0c;前面的技术问题小明都对答如流&#xff0c;双方相谈甚欢&#xff0c;接下来面试官“…

NoSQL-MongoDB with python

前言&#xff1a; MongoDB&#xff0c;文档存储型数据库&#xff08;document store&#xff09;。NoSQL数据库中&#xff0c;它独占鳌头&#xff0c;碾压其他的NoSQL数据库。 使用C开发的&#xff0c;性能仅次C。与redis一样&#xff0c;开源、高扩展、高可用。 基于分布式文件…

RHCS

云计算与大数据 黑洞 RHCS(概念篇) 一、 什么是RHCS RHCS是Red Hat Cluster Suite的缩写&#xff0c;也就是红帽子集群套件&#xff0c;RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合&#xff0c;它将集群系统中三大集群架构融合一体&…

深度图压缩之-高低8位拆分保存

使用kinect相机保存数据&#xff0c;为了减少保存的数据集量&#xff0c;对图像进行压缩。将彩色图像直接压缩成.mp4格式&#xff0c;此时图像上的一些高频信息会被损失掉。 为了能够让深度图有比较高的保真度&#xff0c;减少深度图上高频信息的损失&#xff0c;我们将16位的…

linux 一个超简单的makefile

2019独角兽企业重金招聘Python工程师标准>>> makefile 自动化变量&#xff1a; $ : 规则的目标文件名 例如&#xff1a;main:main.o test.o g -Wall -g main.o test.o -o main 可以写成&#xff1a; main:main.o test.o g -Wall -g main.o test.o -o $ $< : …

poj2480(利用欧拉函数的积性求解)

题目链接: http://poj.org/problem?id2480 题意&#xff1a;∑gcd(i, N) 1<i <N&#xff0c;就这个公式&#xff0c;给你一个n&#xff0c;让你求sumgcd(1,n)gcd(2,n)gcd(3,n)…………gcd(n-1,n)gcd(n,n),&#xff08;1<n<2^31&#xff09;是多少&#xff1f; 放…