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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[codevs 1907] 方格取数3

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [codevs 1907] 方格取数3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[codevs 1907] 方格取數3


題解:

二分圖染色、最大點權獨立集。
因為要用到最大獨立集的一些思路,故先寫了一篇最大獨立集的題解:http://blog.csdn.net/qq_21110267/article/details/43371311
最大點權獨立集可以類比到最大獨立集,同樣求解它的對稱問題——最小點權覆蓋問題(思路見上),點權和-最小點權覆蓋=最大點權獨立集。
那么怎么求最小點權覆蓋呢? 想一想最小割模型,割的性質是不存在一條s-t的路徑,我們已經建立了二分圖模型,假設u是左側的結點,v是右側的結點,那么s-u、u-v、v-t必定有一條在最小割中,如果人為的令u-v不在最小割中(設邊權為INF),那么就簡化為了s-u、v-t至少一條邊在最小割中,正符合了最小點權覆蓋中相鄰點(u、v)至少一個點被選中,我們把s-u的容量設為點u的權值,v-t的容量設為點t的權值,這樣s-u在最小割中就對應著u被選中,而v-t在最小割中就對應著v被選中,這樣就把最小點權覆蓋問題轉化為了最大流問題。

代碼:

總時間耗費: 3ms?
總內存耗費: 492B

#include<cstdio> #include<iostream> #include<vector> #include<queue> #include<algorithm> using namespace std;const int maxn = 1000 + 10; const int INF = 1000000007;struct Edge {int from, to, cap, flow; };vector<Edge> edges; vector<int> G[maxn]; int val[maxn][maxn];void AddEdge(int from, int to, int cap) {edges.push_back((Edge){from, to, cap, 0});edges.push_back((Edge){to, from, 0, 0});int sz = edges.size();G[from].push_back(sz-2);G[to].push_back(sz-1); }int m, n, s, t; int d[maxn], p[maxn], cur[maxn], num[maxn];bool vis[maxn]; bool BFS() {memset(vis, 0, sizeof(vis));queue<int> Q;Q.push(s);d[s] = 0;vis[s] = 1;while(!Q.empty()) {int x = Q.front(); Q.pop();for(int i = 0; i < G[x].size(); i++) {Edge& e = edges[G[x][i]];if(!vis[e.to] && e.cap > e.flow) {vis[e.to] = true;d[e.to] = d[x] + 1;Q.push(e.to);}}}return vis[t]; }int DFS(int u, int a) {if(u == t || a == 0) return a;int flow = 0, f;for(int &i = cur[u]; i < G[u].size(); i++) {Edge& e = edges[G[u][i]];if(d[u] + 1 == d[e.to] && (f = DFS(e.to, min(a, e.cap-e.flow))) > 0) {e.flow += f;edges[G[u][i]^1].flow -= f;flow += f;a -= f;if(a == 0) break;}}return flow; }int Maxflow() {int flow = 0;while(BFS()) {memset(cur, 0, sizeof(cur));flow += DFS(s, INF);}return flow; }int main() {cin >> m >> n;s = 0; t = m * n + 1;int tot = 0;for(int i = 0; i < m; i++)for(int j = 0; j < n; j++) {cin >> val[i][j];tot += val[i][j];}for(int i = 0; i < m; i++)for(int j = 0; j < n; j++) {int u = i*n + j + 1;if((i+j)&1) {if(i > 0) AddEdge(u, u-n, INF);if(j > 0) AddEdge(u, u-1, INF);if(i < m-1) AddEdge(u, u+n, INF);if(j < n-1) AddEdge(u, u+1, INF);AddEdge(s, u, val[i][j]); } else {AddEdge(u, t, val[i][j]);}}int ans = Maxflow();cout << tot - ans << endl;return 0; }

總結

以上是生活随笔為你收集整理的[codevs 1907] 方格取数3的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲精品黄 | 亚洲69av| 久久久久久久久久久久久女国产乱 | 国产欧美日韩精品一区 | 牛av| 欧美日本不卡 | 国产欧美一区二区三区另类精品 | 欧美 日韩 综合 | 日韩一区免费视频 | 久久久国 | 色翁荡息又大又硬又粗又爽 | 九九九色 | 日韩在线一| 中文字幕精品视频在线观看 | 香港黄色网 | 欧洲在线观看 | 国产成人无码av在线播放dvd | 国产aaa毛片| 欧美日韩国产一区二区三区 | 奇米影视播放器 | 成人淫片 | 六月丁香av| 亚洲三级在线看 | 女王人厕视频2ⅴk | 久久精品国产精品 | 在线艹| 李华月全部毛片 | 亚洲aⅴ乱码精品成人区 | 日本一级理论片在线大全 | 欧美xxxx吸乳 | 国产在线日韩 | 午夜视频免费在线 | 巨胸喷奶水www久久久免费动漫 | 国产 丝袜 欧美中文 另类 | 性色av无码久久一区二区三区 | 欧美一级二级三级 | 99爱精品| 久久婷婷热 | 欧美aⅴ视频 | 亚洲精品在线电影 | 国产精品4区| 日日摸日日碰夜夜爽无码 | 国产网站在线 | 国产美女自拍 | 男女搞鸡网站 | 成人亚洲黄色 | 中文字幕av网 | 亚洲综合欧美综合 | www.亚洲一区二区 | 午夜国产福利视频 | 无遮挡aaaaa大片免费看 | 欧美日韩一本 | 热久久精 | 日本亲近相奷中文字幕 | 一级黄色片在线看 | 伊人天天操 | 麻豆tv在线观看 | 人与动物毛片 | 星空大象在线观看免费播放 | 小视频黄色 | 久久av免费观看 | 一个色在线 | 精品国产午夜福利在线观看 | 国产精品久久久久久99 | 久久久精品日本 | 成人欧美一区二区三区在线播放 | 日日操天天 | 成人av影院在线观看 | 国产精品国语自产拍在线观看 | 国产精品77777 | 国产三级福利 | 性做爰视频免费播放大全 | 国外av网站 | 韩国中文字幕在线观看 | 亚洲网站免费观看 | 成人97| 欧美日韩视频免费观看 | 一二三不卡 | 久久国产精品偷 | 91精品色| 亚洲免费成人 | 特大黑人巨交吊性xxxx视频 | 日韩欧美xxxx| 日韩精品一区在线播放 | 国产v在线 | 青青在线视频观看 | 亚洲精品乱码久久久久 | 国产剧情av在线播放 | 亚洲视频手机在线 | 亚洲欧美激情小说另类 | 国产一区二区视频在线免费观看 | 日本美女黄色 | 国产av人人夜夜澡人人爽 | 国产又粗又猛又大爽 | 91狠狠爱| 这里只有精品视频在线观看 | 老司机在线看片 | 日本不卡高字幕在线2019 | 日韩精品免费一区二区夜夜嗨 |