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.pswp.cn/news/252344.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252344.shtml
英文地址,請注明出處:http://en.pswp.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; 放…