日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】

發布時間:2023/12/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意:有 nnn 個柱子,每個柱子有高度 hih_ihi?。你需要在柱子間修橋,在 i,ji,ji,j 間修橋代價為 (hi?hj)2(h_i-h_j)^2(hi??hj?)2,橋梁只能在柱子處相交,未安裝橋的柱子需要拆除,代價為 wiw_iwi?(可能為負數)。求讓 111nnn 連接的最小代價。

n≤105,hi,∣wi∣≤106n\leq 10^5,h_i,|w_i|\leq 10^6n105,hi?,wi?106

顯然是斜率優化

fif_ifi? 表示從 111 修到 iii 的最小代價,ssswww 前綴和。

fi=min?1≤j<i{fj+(hi?hj)2+si?1?sj}f_i=\min_{1\leq j<i}\{f_j+(h_i-h_j)^2+s_{i-1}-s_j\}fi?=1j<imin?{fj?+(hi??hj?)2+si?1??sj?}

fi=min?1≤j<i{fj+hi2?2hihj+hj2+si?1?sj}f_i=\min_{1\leq j<i}\{f_j+h^2_i-2h_ih_j+h^2_j+s_{i-1}-s_j\}fi?=1j<imin?{fj?+hi2??2hi?hj?+hj2?+si?1??sj?}

fi=hi2+si?1+min?1≤j<i{?2hj?hi+fj+hj2?sj}f_i=h^2_i+s_{i-1}+\min_{1\leq j<i}\{-2h_j\cdot h_i+f_j+h_j^2-s_j\}fi?=hi2?+si?1?+1j<imin?{?2hj??hi?+fj?+hj2??sj?}

每個決策 jjj 看成斜率為 ?2hj-2h_j?2hj?,截距為 fj+hj2?sjf_j+h_j^2-s_jfj?+hj2??sj? 的直線, hih_ihi? 看成自變量,李超線段樹求最小值即可。

復雜度 O(nlog?n)O(n\log n)O(nlogn)

#include <iostream> #include <cstdio> #include <cstring> #include <cctype> using namespace std; const int N=1e6,MAXN=N+5; typedef long long ll; inline int read() {int ans=0,f=1;char c=getchar();while (!isdigit(c)) (c=='-')&&(f=-1),c=getchar();while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();return f*ans; } ll k[MAXN],b[MAXN]; inline ll calc(int i,int x){return k[i]*x+b[i];} #define lc p<<1 #define rc p<<1|1 int mn[MAXN<<2]; void modify(int p,int l,int r,int v) {int mid=(l+r)>>1;if (!mn[p]) return (void)(mn[p]=v);if (calc(mn[p],l)<=calc(v,l)&&calc(mn[p],r)<=calc(v,r)) return;if (calc(mn[p],l)>=calc(v,l)&&calc(mn[p],r)>=calc(v,r)) return (void)(mn[p]=v);if (calc(mn[p],mid)>calc(v,mid)) swap(mn[p],v);if (calc(mn[p],l)>calc(v,l)) modify(lc,l,mid,v);else modify(rc,mid+1,r,v); } void query(int p,int l,int r,int k,ll& ans) {if (mn[p]) ans=min(ans,calc(mn[p],k));if (l==r) return;int mid=(l+r)>>1;if (k<=mid) query(lc,l,mid,k,ans);else query(rc,mid+1,r,k,ans); } ll h[MAXN],s[MAXN],f[MAXN]; int main() {int n=read();for (int i=1;i<=n;i++) h[i]=read();for (int i=1;i<=n;i++) s[i]=s[i-1]+read();k[1]=-2*h[1],b[1]=h[1]*h[1]-s[1];modify(1,0,N,1);for (int i=2;i<=n;i++){query(1,0,N,h[i],f[i]=1e18);f[i]+=h[i]*h[i]+s[i-1];k[i]=-2*h[i],b[i]=h[i]*h[i]+f[i]-s[i];modify(1,0,N,i);}cout<<f[n];return 0; }

總結

以上是生活随笔為你收集整理的【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲88 | 一区二区播放 | 久久精品人妻av一区二区三区 | 波多野结衣www | 女人十八毛片嫩草av | 国内一级视频 | 免费在线观看国产精品 | 天堂国产一区二区三区 | 女儿的朋友4在线观看 | 少妇高潮一区二区三区99 | 中文字幕在线观看你懂的 | 黄色链接视频 | 亚洲国产成人一区二区 | 午夜激情在线观看 | 善良的女朋友在线观看 | 丝袜高跟av | 日本少妇激情 | 日韩久久久久久久 | 精品乱子伦一区二区三区 | 一本色道久久亚洲综合精品蜜桃 | 色呦呦视频 | 亚洲爱爱网 | 波多野结衣在线看 | 国产精品午夜在线 | 99久久99久久免费精品蜜臀 | 亚洲av最新在线网址 | 亚洲一区二区三区四 | 玩日本老头很兴奋xxxx | 国产精品无码中文 | 欧美成人精品 | 国产三级久久 | 国产精品午夜福利视频234区 | 亚洲最大黄网 | 伊人久久久久久久久 | 国产精品swag| 日本精品黄 | 免费播放毛片 | 痴汉电车在线播放 | 欧美成人h版 | 毛片网站在线观看 | 欧美日韩三级在线 | 9191久久 | 麻豆成人在线 | av片在线观看 | 亚洲av无码乱码在线观看性色 | 亚洲 欧美 中文字幕 | 三级成人 | 福利视频在线导航 | 精品福利在线视频 | 四虎黄色影视 | 德国性猛交xxxxhd | 国产香蕉一区 | 伊人av网站| youjizz.com最新 | 精品国产乱码久久久人妻 | 亚洲图片二区 | 国产免费av在线 | 国产精品亚洲欧美在线播放 | 黄色的网站在线 | 日韩欧美国产激情 | 99在线无码精品入口 | 自拍偷拍五月天 | 高清免费视频日本 | 国产乱人| 麻豆蜜臀| 曰本无码人妻丰满熟妇啪啪 | 国产福利三区 | 深夜福利免费在线观看 | 中国老熟女重囗味hdxx | 爱如潮水3免费观看日本高清 | 欧美日韩国产精品一区二区三区 | 久久97 | 51成人做爰www免费看网站 | 久久国产色av | 国产无码精品合集 | 亚洲欧美精品一区二区 | 久久不卡区 | 精品人妻一区二区三区蜜桃视频 | a在线免费观看 | 伊人网综合| 男女搞网站 | 成人av网址在线观看 | 日韩av资源 | 岛国视频一区 | 日韩一及片| 婷婷开心激情网 | 精品一区免费 | 天堂社区av | 一区二区三区免费在线 | 国产精品98 | 免费一级特黄特色毛片久久看 | aaa一级片| 草莓巧克力香氛动漫的观看方法 | 亚洲熟妇av一区二区三区 | 免费看毛片的网站 | 少妇紧身牛仔裤裤啪啪 | 黄片毛片在线免费观看 | 青娱乐极品视频在线 | 国内自拍第二页 |