題目大意:求在n*m的棋盤中選出兩兩不相鄰的數,使得和最大。
題目思路:按西洋棋黑白染色,源點到黑點容量為數字,黑點到它周圍的白點容量為無窮,白點到匯點容量為數字,最後答案為總值減去最小割(摘自網上)。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define inf 0x7f3f3f3f
#define max 50000
int max(int a,int b)
int min(int a,int b)
maxflow += aug;
aug = inf;}}
else
{int minx = n;
for(i=p[u]; i!=-1; i=e[i].next)
if(e[i].c&& dis[e[i].to]=0&&y>=0&&x
hdu 1569 方格取數 2
和上一題差不多,都是用最大流來做,可是有人能告訴我stl和直接用陣列,真的有那麼大區別嗎?stl超時,陣列0ms,這是什麼資料,有那麼叼嗎 附上兩份 希望過路的人能給我看看為什麼會超時 stl的 include include include include include include incl...
HDU 1569 方格取數 2 dinic演算法
題意 給出m n的格仔,每個格仔裡都有數字,問你怎麼樣取數字能使其和最大,前提是取出來的格仔不能兩兩相鄰。坑爹 如果按照方格取數的方法教上去會超時。解法 struct edge 記錄邊 用dinic演算法,裡面有兩個部分比較重要,乙個是bfs,另乙個是dfs。bfs 利用bfs來對圖進行乙個分層,如...
hdu 1569 方格取數 2 網路流
題意 給出乙個n m的矩陣,求選出若干個互不不相鄰 的數,使得和最大 分析 劉汝佳白書給出求帶權二分圖的最大獨立集解法。即每個節點有乙個權值,要求選出一些節點,互不相鄰,且權值最大 加入乙個源點s和乙個匯點t,使得s向其中乙個集合的點連一條邊,容量為該點的權值,另一部分的點向t連一條邊,容量為該點的...