網路流 acwing 2237 豬

2021-10-18 19:21:24 字數 1421 閱讀 6092

由於每個人取豬的時序關係,可以把豬看成遺產,由最近的乙個人繼承過來。

建圖方式:

源點:0

匯點:n + 1

#include

using

namespace std;

typedef

long

long ll;

//三年競賽一場空,不開long long見祖宗

//typedef __int128 lll;

#define print(i) cout << "debug: " << i << endl

#define close() ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)

#define mem(a, b) memset(a, b, sizeof(a))

#define pb(a) push_back(a)

#define x first

#define y second

typedef pair<

int,

int> pii;

const

double eps =

1e-8

;const ll mod =

1e9+7;

const

int maxn =

2e5+10;

const

int inf =

0x3f3f3f3f

;struct edge

e[maxn]

;int head[maxn]

, tot;

int buf[maxn]

;int vis[maxn]

;int s, t;

int m, n;

void

init()

void

addedge

(int x,

int y,

int val)

, head[x]

= tot++

; e[tot]

=, head[y]

= tot++;}

int depth[maxn]

, cur[maxn]

, q[maxn]

;bool

bfs()}

}return

false;}

intdfs

(int now,

int flow)

}return res;

}int

dinic()

intmain()

int x; cin >> x;

addedge

(i, t, x);}

cout <<

dinic()

<< endl;

}

網路流 費用流 ACWING382

在乙個n n的矩形網格中,每個格仔裡都寫著乙個非負整數。可以從左上角到右下角安排k條路線,每一步只能往下或往右,沿途經過的格仔中的整數會被取走。若多條路線重複經過乙個格仔,只取一次。求能取得的整數的和最大是多少。輸入格式 第一行包含兩個整數n和k。接下來n行,每行包含n個不超過1000的整數,用來描...

網路流 費用流

這個好像不考 沒事可以騙分 費用流,顧名思義,就是有費用的流,也就是說,給乙個網路流圖中的每條弧增加乙個單位流量費用。一般來說求解的費用流都是最大流最小費用。好像沒什麼好bb的 這裡推薦使用zkw演算法求解最小費用流,看著 理解就行,應該還是很好理解的。zkw演算法在稠密圖上跑得飛快,在稀疏圖上還不...

網路流 費用流

網路流有很多種類 其中最大流 有增廣路演算法和預流推進演算法。增廣路演算法就是不斷的新增增廣路。其中的dinic演算法。會稍微提到isap演算法 poj1273 首先想到dfs一直往後延伸,然後從源點到匯點計算每條路,但是這樣只是單條路的最值,有時可能因為走一條路而間接的認定了除這條路以外的某個路通...