Vijos P1524 最小監視代價

2022-05-19 10:55:45 字數 802 閱讀 5263

題目大意:有一些點和一些邊,每條邊有乙個監視代價。乙個人從1號點出發,到達某些「傳送點」可以逃生。但被監視的邊就不能走了。要你用最小的監視代價使得那個人無法傳送。

解題思路:求最小割。先建乙個超級匯點$n+1$,把所有傳送點連上這個超級匯點,然後根據「最小割=最大流」的定理,跑最大流即可。注意無向圖。

以下為dinic演算法**。

c++ code:

#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

struct edges

};vectorg[105];

int n,m,level[105],iter[105];

queueq;

inline void addedge(int from,int to,int cap)

void bfs(int s)

} }}int dfs(int u,int t,int f)

} }return 0;

}int max_flow(int s,int t)

return flow;

}int main()

int p;

++n;

scanf("%d",&p);

while(p--)

printf("%d\n",max_flow(1,n));

return 0;

}

152 城市遊戲 AcWing

原題鏈結 求最大矩形面積我們可以聯想到那道經典的單調棧例題,因為這道題的n m都不是很大,所以我們可以用o n 2 的演算法。列舉每一行,將每一行以及上面的矩形都看成直方圖,即把每列f的個數當作那道題的陰影部分的高度,然後我們在每一行求它的左右最遠距離,那麼這道題就和那道經典題沒有任何區別 1 in...

演算法導論 15 2 整齊列印

看了這個人寫的解題思路狀態轉移方程,這裡只是用 實現了下 問題 考慮在乙個印表機上整齊地列印一段文章的問題。輸入的正文是n個長度分別為l1 l2 ln 以字元個數度量 的單詞構成的序列。我們希望將這個段落在一些行上整齊地列印出來,每行至多m個字元。整齊度 的標準如下 如果某一行包含從i到j的單詞 i...

152 乘積最大子串行

給定乙個整數陣列 nums 找出乙個序列中乘積最大的連續子串行 該序列至少包含乙個數 示例 1 輸入 2,3,2,4 輸出 6 解釋 子陣列 2,3 有最大乘積 6。示例 2 輸入 2,0,1 輸出 0 解釋 結果不能為 2,因為 2,1 不是子陣列。記錄每一處為止的列表乘積最大最小值,後一處乘積的...