【bzoj1143】 CTSC2008祭祀river 二分圖匹配
貌似是我想少了,二分圖不止只有最大匹配,先寫一些結論吧,等著總結一下。
參考:http://endlesscount.blog.163.com/blog/static/821197872012622103810976/
二分圖最小點覆蓋(每條邊至少一個頂點在集合裡)=最大匹配
二分圖最小邊覆蓋(每個點至少連一條邊)=二分圖點數-最大匹配
證明:考慮最大匹配後,每個未匹配的點連出一條邊,即為最小邊覆蓋=二分圖點數-2*最大匹配+最大匹配=二分圖點數-最大匹配。
二分圖最大獨立集(點兩兩無邊)=二分圖點數-最小點覆蓋
有向無環圖最小不相交路徑覆蓋
把原圖中的每個點V拆成Vx和Vy,如果有一條有向邊A->B,那麼就加邊Ax-By。這樣就得到了一個二分圖,最小路徑覆蓋=原圖的節點數-新圖最大匹配。#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #define maxn 110 using namespace std; int a[maxn][maxn],lk[maxn],f[maxn][maxn]; bool vis[maxn]; int n,m; bool find(int x) { for (int i=1;i<=n;i++) if (a[x][i] && !vis[i]) { vis[i]=1; if (!lk[i] || find(lk[i])) { lk[i]=x; return 1; } } return 0; } int main() { scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); f[x][y]=1; } for (int k=1;k<=n;k++) for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) f[i][j]|=f[i][k]&&f[k][j]; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (f[i][j] && i!=j) a[i][j]=1; int ans=n; for (int i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); if (find(i)) ans--; } printf("%d\n",ans); return 0; }
相關推薦
【bzoj1143】 CTSC2008祭祀river 二分圖匹配
貌似是我想少了,二分圖不止只有最大匹配,先寫一些結論吧,等著總結一下。 參考:http://endlesscount.blog.163.com/blog/static/8211978720126221
【bzoj1143】[CTSC2008]祭祀river Floyd+網路流最小割
在遙遠的東方,有一個神祕的民族,自稱Y族。他們世代居住在水面上,奉龍王為神。每逢重大慶典, Y族都 會在水面上舉辦盛大的祭祀活動。我們可以把Y族居住地水系看成一個由岔口和河道組成的網路。每條河道連線著 兩個岔口,並且水在河道內按照一個固定的方向流動。顯然,水系中
BZOJ 1143: [CTSC2008]祭祀river 二分圖,最大獨立集,Floyd閉包
Description 在遙遠的東方,有一個神祕的民族,自稱Y族。他們世代居住在水面上,奉龍王為神。每逢重大慶典, Y族都 會在水面上舉辦盛大的祭祀活動。我們可以把Y族居住地水系看成一個由岔口和河道組成的網路。每條河道連線著 兩個岔口,並且水在河道內按
bzoj 1143:[CTSC2008]祭祀river 二分圖最大獨立集
在遙遠的東方,有一個神祕的民族,自稱Y族。他們世代居住在水面上,奉龍王為神。每逢重大慶典, Y族都 會在水面上舉辦盛大的祭祀活動。我們可以把Y族居住地水系看成一個由岔口和河道組成的網路。每條河道連線著 兩個岔口,並且水在河道內按照一個固定的方向流動。顯然,水系中不會有環流(下圖描述一個環流的例子)。
【bzoj2744】[HEOI2012]朋友圈 二分圖匹配
算是一道好題了吧,竟然自己想出來了。 首先如果是一般圖的最大團,那麼肯定是不可做,所以這道題的條件一定有什麼性質。 仔細一看,對於A國,我們分成奇數和偶數兩類點,我們發現邊全都是在兩類點之間的,同類點之間沒有邊。 這不是一個二分圖嘛?二分圖的最大團?嘿嘿嘿,最大為2吧。 再
【BZOJ1059】矩陣遊戲(二分圖最大匹配)
set 交換 tdi namespace 顏色 pac 連線 include amp 題意:矩陣遊戲在一個N*N黑白方陣進行。每次可以對該矩陣進行兩種操作: 行交換操作:選擇矩陣的任意兩行,交換這兩行(即交換對應格子的顏色) 列交換操作:選擇矩陣的任意行列,交換這兩列(即交
【EOJ3652】乘法還原(二分圖)
題意: 思路:Orz Claris 先找出所有平方項,將與有平方項的數有關的數對暫時忽略,剩下的直接連邊就是一張二分圖,暴力DFS染色 將有平方項的數兩邊都加一個,再判字典序即可 我不會判字典序……耽誤了一個下午 1 #include<cstdio> 2 #includ
【bzoj1143 CTSC2008】祭祀river(最大獨立集--二分圖匹配)
題目: 我是超連結 題解: 尋找一個最大點集A,滿足∀u,v∈V,(u,v)∉E 二分圖的最大獨立集=頂點數-最大匹配 程式碼: #include <cstdio> #include
【bzoj1143: [CTSC2008]祭祀river】有向無環圖的最長反鏈
1143: [CTSC2008]祭祀river Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3192 Solved: 1632 [Submit][Status][Discuss] Description 在遙遠
[BZOJ1143][CTSC2008]祭祀river(Dilworth定理+二分圖匹配)
algorithm 傳遞閉包 轉化 進一步 freopen eof memset nbsp 二分圖 題意:給你一張n個點的DAG,最大化選擇的點數,是點之間兩兩不可達。 要從Dilworth定理說起。 Dilworth定理是定義在偏序集上的,也可以從圖論的角度解釋
2018.10.11【BZOJ1143】【CTSC2008】祭祀river(最長反鏈)
傳送門 解析: 有DilworthDilworthDilworth定理: 最長反鏈長度===最小鏈覆蓋數。 證明我覺得VfleakingVfleakingVfleaking的部落格寫得很好%%%%%%
bzoj1143: [CTSC2008]祭祀river(二分圖匹配)
題目傳送門 題面有點坑(對於我這種不讀題面的人來說) 題面上有個大大的圖。我看了一下好像是環誒。 我就以為這題有環。 一開始 我想: 既然有環,那麼我用強聯通縮點之後每個環最多隻能選出一個點咯。 然後我再在剩下的點裡面求點集,使兩兩不能互相到達。
【BZOJ1143】【CTSC2008】祭祀river 傳遞閉包、最大點獨立集(網路流寫的)
#include <stdio.h> int main() { puts("轉載請註明出處謝謝"); puts("http://blog.csdn.net/vmurder/artic
[二分圖最大獨立集]BZOJ 1143—— [CTSC2008]祭祀river
題目梗概 給定一張有向圖,在這個圖上的一些節點放上標記且任意標記節點不被其他標記節點到達。 使標記節點個數最大化。 解題思路 對於每一個點還是進行拆點操作,這樣就形成一張二分圖。 題目答案顯然就是二分圖的最大獨立集。 最大獨立集=n-最小頂點覆蓋
二分圖匹配 【模板】
print front space namespace spl ide ons urn sca 1 #include <algorithm> 2 #include <cstring> 3 #include <cstdio&g
洛谷—— P3386 【模板】二分圖匹配
blank lan print 一個 dfs com 二分 i++ bool https://www.luogu.org/problem/show?pid=3386 題目背景 二分圖 題目描述 給定一個二分圖,結點個數分別為n,m,邊數為e,求二分圖最大匹配數 輸
【二分圖匹配入門專題1】E - Air Raid hdu1151【最小路徑覆蓋】
eno rate ask return red size all file 痛苦 Consider a town where all the streets are one-way and each street leads from one intersection to
【二分圖匹配入門專題1】F - COURSES poj1469【最大匹配--匈牙利算法模板題】
nbsp possible count dfs positive owin not hat first Consider a group of N students and P courses. Each student visits zero, one or more t
【二分圖匹配入門專題1】D - Matrix hdu2119【最小頂點覆蓋】
sample ins ever != sca either dfs ret int Give you a matrix(only contains 0 or 1),every time you can select a row or a column and delete
【二分圖匹配入門專題1】M - Cyclic Tour hdu1853【km算法--判斷自重邊】
初始化 case test case 思路 contain first rst ant eve There are N cities in our country, and M one-way roads connecting them. Now Little Tom wa