AcWing 380 舞動的夜晚

2022-05-08 15:45:07 字數 1867 閱讀 6637

有一張左部 \(n\) 個點,右部 \(m\) 個點,\(t\) 條邊的二分圖,求在強制連哪些邊後,圖的最大匹配會減小。

\(1\leq n,m \leq 10000\) , \(1\leq t\leq 100000\) 。

引入兩個概念:二分圖的必需邊和可行邊。

先說他們該如何判定,我們先用最大流求出二分圖的乙個可行解,得到殘餘網路,我們畫一下圖:

這時 \(1\) 和 \(3\) 匹配, \(2\) 和 \(4\) 匹配,注意到在這種情況下,\((1,3)\) 和 \((2,4)\) 都不可能是必需邊,因為它倆不匹配,可以被另外的邊替代:

這樣可以類推得到結論:

必需邊 \(\leftrightarrow\) 在殘留網路上為匹配邊且兩端點不屬於同乙個強連通分量

可行邊 \(\leftrightarrow\) 在殘留網路上為匹配邊或兩端點在同乙個強連通分量內

而這道題求的就是不可行邊,即可行邊的補集, \(dinic\) 最大流 \(+\)

\(tarjan\) 強連通分量 就做完了。

時間複雜度 \(o(t \sqrt)\) 。

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

#define rep(i,a,b) for(int i=a;i<=b;i++)

#define per(i,b,a) for(int i=b;i>=a;i--)

#define n 20010

#define e 200200

#define inf 0x3f3f3f3f3f

using namespace std;

inline int read()

while(ch>='0'&&ch<='9')s=(s<<3)+(s<<1)+(ch^48),ch=getchar();

return s*w;

}int head[n],to[e],nxt[e];

int cnt,n,m,e,s,t;

int cap[e],d[n];

int c[n],dfn[n],low[n],scc,num;

int rlt[n][3]; //short for "relation"

bool in[n];

queueq;

stackst;

void init()

void add_e(int a,int b,bool id)

bool bfs()

}return false;

}int dinic(int x,int flow)

}return flow-rest;

}void tarjan(int x)else if(in[y])

low[x]=min(low[x],dfn[y]);

}if(dfn[x]==low[x])while(y!=x);

}}int main()

s=0,t=m+n+1;

rep(i,1,n)add_e(s,i,1);

rep(i,1,m)add_e(i+n,t,1);

int flow,maxflow;

while(bfs())

rep(i,0,n+m+1)

int ans=0;

rep(i,1,e)

cout<

rep(i,1,e)

return 0;

}

k380沒有驗證碼 羅技K380藍芽鍵盤

關於k380這款產品本身 179 某東羅技自營店 顏色 喜歡藍色,所以選的藍色款,和我的ipad pro的殼殼一樣的顏色。重量 0.5kg左右 碼字 一百多塊錢的東西還談什麼手感,手感自然是不如我心愛的機械鍵盤的,不過這個巧克力鍵盤,普通使用完全沒有問題,打字敲擊聲不大,如果是帶到圖書館或者書店一類...

CF 380菜雞題解

a.給你n個車,時間限制內要走到s。路上有加油站免費加油。對於每輛車,你都可以花2公升油走1步花1分鐘,或者花1公升油走1步花2分鐘。問最小花費。一眼二分就秒了。b.乙個人在貼吧炸魚。然後他炸了好幾次也沒炸到。現在告訴你有n條魚,每條魚的長度為m。魚和魚不重合。求一種炸魚的方案,使得第一次炸到魚的時...

HP Proliant DL 380風扇噪音大

從上週開始,機房裡的hp proliant dl 380 g6伺服器的風扇就一直呼呼在叫,沒有要停歇的跡象,我覺得非常奇怪,我檢視了溫度是正常的,應該不會整排風扇都在強烈運轉才對。無奈之下call了hp的800 得到的答案是可能是ilo的firmware要update。2.先嘗試第乙個更新,如果不好...