luogu 1344 追查壞牛奶 最小割

2022-05-26 23:33:14 字數 1772 閱讀 3512

第一問求最小割。 第二問求割邊最小的最小割。

我們直接求出第二問就可以求出第一問了。

對於求割邊最小,如果我們可以把每條邊都附加乙個1的權值,那麼求最小割是不是會優先選擇1最少的邊呢。

但是如果直接把邊的權值+1,這樣求得的最小割就不是原來的最小割了,那是因為1會對原來的容量產生影響。

如果把每條邊的權值都乘以乙個很大的常數,再加上附加權值1,這樣求出的最小割是不是顯然也是原圖的最小割呢。

那麼最終的答案除以這個常數就是最小割的容量,最終的答案模這個常數就是最小割的最小割邊數。

# include # include 

# include

# include

# include

# include

# include

# include

# include

# include

# include

using

namespace

std;

# define lowbit(x) ((x)&(-x))

# define pi acos(-1.0

)# define eps 1e-7

# define mod

1024523

# define inf 1e16

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

sizeof

(a))

# define for(i,a,n)

for(int i=a; i<=n; ++i)

# define fo(i,a,n)

for(int i=a; ii)

# define bug puts("h

");# define lch p

<<1

,l,mid

# define rch p

<<1|1,mid+1

,r# define mp make_pair

# define pb push_back

typedef pair

pii;

typedef vector

vi;# pragma comment(linker,

"/stack:1024000000,1024000000")

typedef

long

long

ll;int

scan()

while(ch>='

0'&&ch<='9')

return x*f;

}void out(int

a)

if(a>=10) out(a/10

); putchar(a%10+'0'

);}const

int n=35;//

code begin...

struct edgeedge[4005

];int head[n], cnt=2

, s, t, vis[n];

queue

q;void add_edge(int u, int

v, ll w)

intbfs()}}

return vis[t]!=-1;}

ll dfs(

intx, ll low)

}if (temp==low) vis[x]=-1

;

return low-temp;

}int

main ()

view code

英語練習134 The job interview

工作面試 卡麗 面試進行得如何?裘克 進行得很順利 謝謝。卡麗 公司的名稱是什麼?裘克 中華電子計算機。卡麗 我聽說它的名聲很好。裘克 那就是我去那裡求職的原因。how did your interview go?it went very well.thanks.what s the name of...

13 4 I O緩衝小結

13.4 i o緩衝小結 圖13 1概括了stdio函式庫和核心所採用的緩衝 針對輸出檔案 以及對各種緩衝型別的控制機制。從圖中自上而下,首先是通過stdio庫將使用者資料傳遞到stdio緩衝區,該緩衝區位於使用者態記憶體區。當緩衝區填滿時,stdio庫會呼叫write 系統呼叫,將資料傳遞到核心高...

134 LRU快取策略

為最近最少使用 lru 快取 策略設計乙個資料結構,它應該支援以下操作 獲取資料 get 和寫入資料 set 獲取資料get key 如果快取中存在key,則獲取其資料值 通常是正數 否則返回 1。寫入資料set key,value 如果key還沒有在快取中,則寫入其資料值。當快取達到上限,它應該在...