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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[ZJOI2011]营救皮卡丘(费用流 + 最短路)

發布時間:2023/12/3 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ZJOI2011]营救皮卡丘(费用流 + 最短路) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

problem

luogu-P4542

solution

剛開始就直觀感覺 dpdpdp 不動,卻有個看似“理所當然”的貪心:每次跑 kkk 個人所在點到擴展據點的最短距離,然后讓最近的人去破環那個據點。

啪啪敲完后小樣例(實在太水)就過了,然后大樣例就…\dots爆炸了。

再然后就可以隨便手玩很小的情況都可以 hack\text{hack}hack 掉這個貪心。

fine貪心也不行

當你發現貪心貪不動,dppdp\ pdp?p 不動,你再看數據范圍可以接受 2/32/32/3 次方,n,mn,mn,m 小的離譜卻又比狀壓大,你不妨再看看我們可愛的網絡流。

我一直把網絡流當成智能化的貪心。


好,現在我們已經知道 猜想 到是網絡流了,接下來就是建圖的問題了。

首先要求出任意兩個據點之間的最短距離,floyd\text{floyd}floyd 都可以接受。

但是這里有個限制:顯然這個最短路上中間經過的據點編號不能大于起終點的編號。

floyd\text{floyd}floyd 的放縮更新中加上判斷即可。

然后網絡流上的圖肯定是編號小的到編號大的點連邊。

每個點都可能成為人最后停留的位置,所以每個點都要向匯點連邊。

源點一開始只給初始點輸送 kkk 的流量,網絡最后流出的 kkk 條路徑就是這 kkk 個人的行動方案。

但這里我們要保證每個點被走的次數 ≥1\ge 11

可以選擇直接上下界網絡流,也可以將網絡流轉化成費用流。

對每個點拆成入點和出點,連兩條邊,一條特殊的費用為 ?∞-\infty?,流量為 111,另一條是普通的無費用,流量無限制。

這樣子為了使得費用最小化,網絡流肯定會流過所有點的特殊邊。

這樣子就達到了每個點至少被走過一次的要求。

最后再把費用加回來就行了 n?∞n*\inftyn?

這個建圖的思路基礎為 kkk 條可重鏈覆蓋圖上所有點。

code

#include <bits/stdc++.h> using namespace std; #define int long long #define inf 0x3f3f3f3f #define maxn 400 #define maxm 300000 struct node { int to, nxt, flow, cost; }E[maxm]; int cnt = -1, n, m, K, s, t; int head[maxn], lst[maxn], dep[maxn], vis[maxn]; int dis[maxn][maxn]; queue < int > q;void addedge( int u, int v, int w, int c ) {E[++ cnt] = { v, head[u], w, c }, head[u] = cnt;E[++ cnt] = { u, head[v], 0,-c }, head[v] = cnt; }void build() {memset( head, -1, sizeof( head ) );s = 0, t = n << 1 | 1;addedge( s, 1, K, 0 );for( int i = 1;i <= n;i ++ ) {addedge( i, i + n, 1, -inf );addedge( i, i + n, inf, 0 );addedge( i + n, t, inf, 0 );for( int j = i + 1;j <= n;j ++ ) {if( dis[i][j] != inf )addedge( i + n, j, inf, dis[i][j] );}} }bool SPFA() {memset( dep, 0x3f, sizeof( dep ) );memset( lst, -1, sizeof( lst ) );dep[s] = 0, q.push( s );while( ! q.empty() ) {int u = q.front(); q.pop(); vis[u] = 0;for( int i = head[u];~ i;i = E[i].nxt ) {int v = E[i].to;if( dep[v] > dep[u] + E[i].cost and E[i].flow ) {dep[v] = dep[u] + E[i].cost; lst[v] = i;if( ! vis[v] ) q.push( v ), vis[v] = 1;}}}return ~lst[t]; }int MCMF() {int ans = 0;while( SPFA() ) {int flow = inf;for( int i = lst[t];~ i;i = lst[E[i ^ 1].to] )flow = min( flow, E[i].flow );for( int i = lst[t];~ i;i = lst[E[i ^ 1].to] ) {E[i ^ 1].flow += flow;E[i].flow -= flow;ans += flow * E[i].cost;}}return ans + inf * n; }signed main() {scanf( "%lld %lld %lld", &n, &m, &K );n ++;for( int i = 1;i <= n;i ++ )for( int j = 1;j <= n;j ++ )dis[i][j] = inf;for( int i = 1, u, v, w;i <= m;i ++ ) {scanf( "%lld %lld %lld", &u, &v, &w );u ++, v ++;dis[u][v] = dis[v][u] = min( w, dis[u][v] );}for( int k = 1;k <= n;k ++ )for( int i = 1;i <= n;i ++ )for( int j = 1;j <= n;j ++ )if( k < max( i, j ) )dis[i][j] = min( dis[i][j], dis[i][k] + dis[k][j] );build();printf( "%lld\n", MCMF() );return 0; }

總結

以上是生活随笔為你收集整理的[ZJOI2011]营救皮卡丘(费用流 + 最短路)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 精久久久久 | a男人天堂| 亚洲黄色小说视频 | 国产精品色视频 | 欧美日韩在线一区二区三区 | 国产黄色一级大片 | av草逼 | 天堂av资源| 九九九亚洲 | 3344成人| 九色在线播放 | 国产熟妇搡bbbb搡bbbb搡 | 久久综合九色综合欧美狠狠 | 日本一区免费电影 | 奇米888一区二区三区 | 亚洲av综合色区无码一区 | 99精品久久毛片a片 成人网一区 | 香蕉视频一级片 | 小视频在线看 | www.蜜桃av.com| 日韩精品在线视频免费观看 | 亚洲偷 | 日韩欧美中 | 欧美日韩免费一区二区 | 日韩一区欧美一区 | 午夜毛片在线观看 | 亚洲天堂h| 国内偷拍第一页 | 日本福利一区二区三区 | av剧情在线 | 午夜伦理影院 | 黄色网页大全 | 国产精品久久久久久妇女6080 | 亚洲AV无码国产日韩久久 | 婚后打屁股高h1v1调教 | 久久精品一二区 | 欧美日韩一区在线 | 99热综合 | 国产三级一区 | 91噜噜噜 | 国产一区二区三区精品愉拍 | 女生隐私免费看 | 欧美在线免费视频 | 成人福利视频网站 | 成人日批 | 69xxx国产| 一二三区精品 | 91福利专区 | 国产一区av在线 | 欧美大尺度床戏做爰 | 少妇毛片一区二区三区粉嫩av | www.国产com | av色噜噜 | 精品久久久久久久久久久久 | 高清av免费观看 | 欧美一区二区三区久久精品 | 亚洲砖区区免费 | 毛片基地站 | 亚洲第一国产视频 | 亚洲图片偷拍区 | 一本大道东京热无码 | 6080黄色 | 又大又长粗又爽又黄少妇视频 | 老头吃奶性行交 | 欧美日韩在线影院 | 免费黄色在线观看 | 免费瑟瑟网站 | 国产一级二级三级精品 | 国产精品手机视频 | 欧美视频福利 | 成人在线视频免费播放 | 国产极品福利 | 午夜亚洲国产 | 女人裸体无遮挡 | 情侣自拍av | 日本三级黄在线观看 | 五月婷婷六月丁香综合 | 黑人狂躁日本妞hd | 国产这里有精品 | 美女啪啪网站 | 欧美性猛交69 | 久久久久久无码精品大片 | 伊人一道本| 大尺度激情吻胸视频 | 亚欧美在线观看 | 色呦呦网站在线观看 | 免费观看黄色小视频 | 亚洲精品视频在线观看免费 | 视频一区二区不卡 | 国产成人精品一区二区三区免费 | 奇米影| 亚洲午夜精品久久久久久app | www.精品一区 | 日韩精品在线观看一区二区 | 精品一区二区在线播放 | 这里只有精品视频在线观看 | 亚洲精品黄色片 | www.九色 | 综合国产一区 |