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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【图论】【斜率优化】前往大都会(loj 2769)

發(fā)布時(shí)間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【图论】【斜率优化】前往大都会(loj 2769) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

正題

jzoj 7181


題目大意

給你由若干鐵路組成的圖(一個(gè)鐵路上有若干點(diǎn)),問你從1到n在最短路徑的前提下,乘坐的每一條鐵路所花費(fèi)時(shí)間的平方和的最大值


解題思路

先用dij跑出最短路圖(即長度等于最短路的所有路徑)

然后在最短路圖上DP,設(shè)fif_ifi?為到第i個(gè)點(diǎn)滿足最短路的最大答案,轉(zhuǎn)移方程

fi=max(fj+(disi?disj)2)f_i = max\ (f_j+(dis_i-dis_j)^2)fi?=max?(fj?+(disi??disj?)2)

對(duì)于該方程,可以用斜率優(yōu)化

當(dāng)計(jì)算到i時(shí),枚舉所在鐵路,然后斜率優(yōu)化(因?yàn)槿ax,且dis單調(diào)遞增,所以用單調(diào)棧維護(hù)上凸殼)


代碼

#include<queue> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define ll long long #define mp make_pair #define fs first #define sn second #define sz st[g].size() #define l1 st[g][sz - 1] #define l2 st[g][sz - 2] #define N 1000100 using namespace std; int n, m, x, y, nn, tot, cnt, p[N], q[N], h[N]; ll z, f[N], X[N], Y[N], dis[N]; vector<pair<int, int> >w[N]; vector<pair<int, ll> >a[N]; vector<int>st[N<<1], wst[N]; priority_queue<pair<ll, int> >d; struct rec {int to, next;ll l; }e[N]; void add(int x, int y, ll z) {e[++tot].to = y;e[tot].l = z;e[tot].next = h[x];h[x] = tot; } void dij() {memset(dis, 0x7f, sizeof(dis));dis[1] = 0;d.push(mp(0, 1));while(!d.empty()){int u = d.top().sn;d.pop();if (p[u]) continue;p[u] = 1;for (int i = h[u]; i; i = e[i].next){int v = e[i].to;if (dis[u] + e[i].l < dis[v]){dis[v] = dis[u] + e[i].l;d.push(mp(-dis[v], v));}}}return; } bool cmp(int x, int y) {return dis[x] < dis[y]; } void solve() {for (int i = 1; i <= n; ++i)q[i] = i;//按dis枚舉sort(q + 1, q + 1 + n, cmp);for (int i = 1; i <= n; ++i){int u = q[i];for (int j = 0; j < w[u].size(); ++j){x = w[u][j].fs;y = w[u][j].sn;if (y && dis[a[x][y - 1].fs] + a[x][y - 1].sn == dis[u]) wst[x][y] = wst[x][y - 1];//一個(gè)鐵路可能在不同的最短路中,先判斷在哪一段中else wst[x][y] = ++cnt;int g = wst[x][y];while(sz >= 2 && Y[l1] - Y[l2] < 2ll * dis[u] * (X[l1] - X[l2]))//斜率優(yōu)化st[g].pop_back();if (sz){int v = st[g][sz - 1];f[u] = max(f[u], f[v] + (dis[u] - dis[v]) * (dis[u] - dis[v]));}}Y[u] = f[u] + dis[u] * dis[u];X[u] = dis[u];for (int j = 0; j < w[u].size(); ++j){x = w[u][j].fs;y = w[u][j].sn;int g = wst[x][y];while (sz >= 2 && (Y[l1] - Y[l2]) * (X[u] - X[l1]) < (Y[u] - Y[l1]) * (X[l1] - X[l2]))st[g].pop_back();st[g].push_back(u);}} } int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= m; ++i){scanf("%d", &nn);scanf("%d", &x);for (int j = 1; j <= nn; ++j){scanf("%lld%d", &z, &y);add(x, y, z);w[x].push_back(mp(i,j - 1));//在哪一段鐵路的那個(gè)點(diǎn)a[i].push_back(mp(x,z));//插入到第i段鐵路中,到下一個(gè)點(diǎn)的距離為zwst[i].push_back(0);x = y;}w[x].push_back(mp(i,nn));a[i].push_back(mp(x,0));wst[i].push_back(0);}dij();solve();printf("%lld %lld", dis[n], f[n]);return 0; }

總結(jié)

以上是生活随笔為你收集整理的【图论】【斜率优化】前往大都会(loj 2769)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 女生张开腿让男生插 | 超碰成人在线观看 | 日本人三级 | 日韩中文字幕影院 | 麻豆影视在线 | 奇米97 | 国产中文字幕在线免费观看 | 亚洲成人黄色 | 日韩久久久久久 | 少妇色综合 | 在线免费不卡视频 | 在线无码va中文字幕无码 | 欧美三级韩国三级日本三斤在线观看 | 国产一级做a | 朴麦妮原版视频高清资源 | 国产一二| 精品国偷自产国产一区 | 狠狠干b| 日日夜夜免费精品 | 九九九九精品九九九九 | 亚洲大成色| 3d动漫精品啪啪一区二区免费 | 爱情岛论坛永久入口 | 亚洲女人天堂色在线7777 | 国产在线不卡视频 | 狠狠操狠狠操狠狠操 | 国产噜噜噜噜噜久久久久久久久 | 欧美肥老妇视频 | 夜夜免费视频 | 欧美少妇b| 亚洲自啪 | 国语对白清晰刺激对白 | 日日夜夜精品免费视频 | 国产精品911 | 一级做a爰片久久毛片 | 一区二区日本视频 | 777米奇影视第四色 五月丁香久久婷婷 | 少妇一边呻吟一边说使劲视频 | 久久久久性| 亚洲综合五月天 | 丝袜熟女一区二区三区 | 国产精品一级无码 | 日韩欧美高清一区 | 东京av男人的天堂 | 91精品免费观看 | 99精品免费在线观看 | 两个人看的www视频免费完整版 | 永久av免费| 日韩欧美一本 | 国产又大又黑又粗 | 亚洲网站免费观看 | 欧美特一级片 | 特级毛片爽www免费版 | 久久久999国产精品 天堂av中文在线 | 亚洲成人中文 | 91丨porny丨在线| 美国做爰xxxⅹ性视频 | 91精品一区二区三区综合在线爱 | 做爰视频毛片视频 | 乳色吐息在线观看 | 性生活视频在线播放 | 婷婷日| 91精彩视频| 超碰免费观看 | 黄p在线播放| 99re这里只有精品在线 | 日韩大片在线免费观看 | av播播| wwwav在线播放 | av基地网| 久久久久久国产精品无码 | 无码人妻精品一区二区三区99日韩 | 日日综合网 | 日韩91视频 | 91在线观看免费视频 | 午夜精品福利视频 | 人人妻人人做人人爽 | 欧美黑人欧美精品刺激 | 好吊妞视频这里只有精品 | 在线电影一区二区三区 | caoporn成人 | 精品国产伦一区 | 精品人妻少妇嫩草av无码专区 | a毛片基地 | av中文天堂 | 天堂在线1 | 欧美亚洲视频在线观看 | www亚洲天堂 | 日韩综合色 | 欧美成人免费视频 | 久久精品在线观看 | 久久精品第一页 | 求av网址 | www.av网站| 韩国三级hd两男一女 | 国产福利在线观看 | 91精品国产乱码久久久久久久久 | 99精品人妻少妇一区二区 | 丁香婷婷亚洲 |