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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[codevs 1033] 蚯蚓的游戏问题

發(fā)布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [codevs 1033] 蚯蚓的游戏问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

[codevs 1033] 蚯蚓的游戲問題


題解:

首先每個點只能走一次,所以要靠拆點 (X -> Xi, Xj) 來限制每個點走的次數(shù),容量為1,費用為食物量的相反數(shù)。 從源點向所有第一層的點 Xi 連一條容量為1,費用為0的邊。 從最后一層的點 Xj 向匯點連一條容量為1,費用為0的邊。 因為從源點向所有第一層的點連邊不考慮蚯蚓個數(shù),即沒有限制最大流量,所以再建立一個超級匯點,從匯點到超級匯點連一條容量為蚯蚓條數(shù),費用為0的邊,求最小費用最大流,最后答案就是從源點到超級匯點的費用的相反數(shù);也可以建立超級源點,從超級源點向源點連邊限制流量。


代碼:

耗時:19ms 內(nèi)存:872B

#include<cstdio> #include<iostream> #include<vector> #include<queue> #include<algorithm> using namespace std;const int maxn = 3000 + 10; const int INF = 1000000007;int n, m, k, s, t, delta; int map[maxn][maxn], ID[maxn][maxn];struct Edge {int from, to, cap, flow, cost; };vector<Edge> edges; vector<int> G[maxn];void AddEdge(int from, int to, int cap, int cost) {edges.push_back((Edge){from, to, cap, 0, cost});edges.push_back((Edge){to, from, 0, 0, -cost});int sz = edges.size();G[from].push_back(sz-2);G[to].push_back(sz-1); }bool inq[maxn]; int a[maxn], d[maxn], p[maxn];bool BellmanFord(int& flow, int& cost) {for(int i = s; i <= t; i++) d[i] = INF;memset(inq, 0, sizeof(inq));d[s] = 0; inq[s] = 1; p[s] = 0; a[s] = INF;queue<int> Q;Q.push(s);while(!Q.empty()) {int x = Q.front(); Q.pop();inq[x] = 0;for(int i = 0; i < G[x].size(); i++) {Edge& e = edges[G[x][i]];if(e.cap > e.flow && d[e.to] > d[x] + e.cost) {d[e.to] = d[x] + e.cost;p[e.to] = G[x][i];a[e.to] = min(a[x], e.cap-e.flow);if(!inq[e.to]) {Q.push(e.to);inq[e.to] = 1;}}}}if(d[t] == INF) return 0;flow += a[t];cost += d[t] * a[t];int x = t;while(x != s) {edges[p[x]].flow += a[t];edges[p[x]^1].flow -= a[t];x = edges[p[x]].from;}return 1; }void MincostMaxflow() {int flow = 0, cost = 0;while(BellmanFord(flow, cost));cout << -cost << endl; }void init() {cin >> n >> m >> k;for(int i = 1; i <= n; i++)for(int j = 1; j < m+i; j++) {ID[i][j] = ++t;cin >> map[i][j];}delta = t;t = t * 2 + 2;int _t = t-1;for(int x = 1; x <= n; x++)for(int y = 1; y < x+m; y++) {int& id = ID[x][y];AddEdge(id, id+delta, 1, -map[x][y]);if(x == 1) AddEdge(s, id, 2, 0);if(x == n) AddEdge(id+delta, _t, 2, 0); //key1else {AddEdge(id+delta, ID[x+1][y], 1, 0);AddEdge(id+delta, ID[x+1][y+1], 1, 0);}}AddEdge(_t, t, k, 0); }int main() {init();MincostMaxflow();return 0; }

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的[codevs 1033] 蚯蚓的游戏问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 庆余年三| 免费在线性爱视频 | 亚洲五级片 | xxx性欧美 | 麻豆视频免费入口 | 日韩福利视频在线观看 | 91免费播放 | 美国色视频 | 网友自拍第一页 | 日日夜夜天天 | 国产成人91精品 | 国产sm网站 | 国产电影一区二区三区 | www.色午夜 | 农民人伦一区二区三区 | 69欧美视频 | 亚洲第一成肉网 | 少妇视频网 | 亚洲在线播放 | 欧美激情喷水 | 日韩精品视频久久 | 午夜电影一区二区三区 | 国产精品178页 | 天天草天天操 | 亚洲精品无码不卡在线播he | 久久精品店 | 亚洲人成网址 | 久精品免费视频 | 调教亲女小嫩苞h文小说 | 少妇4p | 毛片官网| 在线国产欧美 | 日韩一区二区a片免费观看 伊人网综合在线 | 成人黄色电影在线 | 91超薄肉色丝袜交足高跟凉鞋 | 日韩五十路 | 性欧美久久久 | 一本一道久久综合 | 十大黄台在线观看 | 亚洲成人动漫在线观看 | 日本熟女毛茸茸 | 免费一区二区三区视频在线 | 日本美女性生活视频 | 国产啊啊啊啊 | 国产免费又爽又色又粗视频 | 铠甲勇士猎铠 | 尹人香蕉 | 销魂美女一区二区 | 中日韩在线视频 | 无码无遮挡又大又爽又黄的视频 | 免费观看成年人视频 | 国产一区午夜 | 天天摸日日干 | 无码人妻久久一区二区三区不卡 | 中文字幕免费观看视频 | 国产精品伦一区二区三级视频 | 日本人妻丰满熟妇久久久久久 | 日韩综合网站 | 国产精品激情偷乱一区二区∴ | 黑人玩弄人妻一区二区三区免费看 | 国产女主播福利 | 伊人影院视频 | 国产suv一区二区 | 久久久亚洲一区二区三区 | 天堂av2021| 成人免费黄色大片v266 | 国产91精品一区二区绿帽 | 男人懂的网站 | 欧美成人精品一区二区三区在线观看 | 亚洲播播 | 热精品| 韩国一区二区三区四区 | 久操色 | 中文字幕亚洲欧美日韩在线不卡 | 国产美女精品视频 | 成人小视频在线免费观看 | 精品无码av一区二区三区不卡 | 91爱在线观看 | 爱爱一区 | 欧美另类极品videosbest最新版本 | 韩国三级中文字幕 | www国产黄色| 日本福利片在线观看 | 久久艹伊人| 日韩av在线免费播放 | 久久久久久久色 | 夜夜撸小说 | 亚洲激情视频 | 全部免费毛片在线播放一个 | 久操精品视频 | 丝袜人妖| 日韩精品视频三区 | 成人精品国产免费网站 | 黄色a在线 | 欧美性受xxxx狂喷水 | 午夜电影天堂 | 色很久| 精品久久久久久久久久久aⅴ | 国产精品亚洲成在人线 |