1. 程式人生 > >【bzoj1143 CTSC2008】祭祀river(最大獨立集--二分圖匹配)

【bzoj1143 CTSC2008】祭祀river(最大獨立集--二分圖匹配)

題目:

我是超連結

題解:

尋找一個最大點集A,滿足∀u,v∈V,(u,v)∉E 

二分圖的最大獨立集=頂點數-最大匹配 

程式碼:

#include <cstdio>
#include <iostream>
#define N 10000+5
using namespace std;
int tot,belong[N],point[N*2],v[N*2],nxt[N*2],vis[N],n;
bool a[105][105];
void addline(int x,int y)
{
	++tot; nxt[tot]=point[x]; point[x]=tot; v[tot]=y;
}
bool find(int x,int k)
{
	for (int i=point[x];i;i=nxt[i])
	  if (vis[v[i]]!=k)
	   {
	   	vis[v[i]]=k;
	   	if (!belong[v[i]] || find(belong[v[i]],k))
	   	{
	   		belong[v[i]]=x;
	   		return true;
		}
	   }
	return false;
}
void floyed()
{
	int i,j,k;
	for (i=1;i<=n;i++)
	  for (j=1;j<=n;j++)
	    for (k=1;k<=n;k++)
	      a[i][j]=a[i][j] || (a[i][k]&&a[k][j]);
}
int main()
{
	int ans=0,m,i,u,v,maxx=0,j;
	scanf("%d%d",&n,&m);
	for (i=1;i<=m;i++)
	  scanf("%d%d",&u,&v),a[u][v]=true;
	floyed();
	for (i=1;i<=n;i++)
	  for (j=1;j<=n;j++)
	    if (i!=j && a[i][j]) addline(i,j); 
	for (i=1;i<=n;i++)
	  if (find(i,i)) ans++;  
	printf("%d",n-ans);
}



相關推薦

bzoj1143 CTSC2008祭祀river獨立--二分匹配

題目: 我是超連結 題解: 尋找一個最大點集A,滿足∀u,v∈V,(u,v)∉E  二分圖的最大獨立集=頂點數-最大匹配  程式碼: #include <cstdio> #include

[1143] [CTSC2008]祭祀river獨立 || 偏序反鏈

.com 網上 ext line const void getc inline sed 傳送門 網上說這是偏序集最大反鏈,然而我實在不理解。 所以我換了一個思路,先用floyed,根據點的連通性連邊, 問題就轉換成了找出最多的點,使任意兩個點之間不連邊,也就是最

codevs 1922 騎士共存問題||二分||獨立||二分匹配||Dinic與匈牙利演算法的討論||網路流

** 1922 騎士共存問題 ** ** 題目描述 Description ** 在一個n*n個方格的國際象棋棋盤上,馬(騎士)可以攻擊的棋盤方格如圖所示。棋盤 上某些方格設定了障礙,騎士不得進入。 對於給定的n*n個方格的國際象棋棋盤和

HDU-1068-GirlsandBoys(獨立,二分匹配)

ndb 二分圖 sca iterator ostream back pro 兩個人 for 鏈接:https://vjudge.net/problem/HDU-1068#author=0 題意: 學校對n個學生(男女都有)進行的調查了,發現了某些學生暗生情愫,現在需要你

2018.10.11BZOJ1143CTSC2008祭祀river長反鏈

傳送門 解析: 有DilworthDilworthDilworth定理: 最長反鏈長度===最小鏈覆蓋數。 證明我覺得VfleakingVfleakingVfleaking的部落格寫得很好%%%%%%

luoguP3731 [HAOI2017]新型城市化 獨立 二分的必須邊 Dinic Tarjan

luoguP3731 [HAOI2017]新型城市化 題目傳送門 分析 題目大意:給定一張恰可被劃分成兩個團的圖,求有多少種新增一條邊的方案可以使原圖最大團大小+1。 恰可被劃分成兩個團的圖 &ThickSpa

[BZOJ4808] 馬獨立

匹配 truct esp urn ont code freopen pop += 題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=4808 題意:其實就是找出一個點集的子集,使得這個子集中的點互不相連。求這個子集規模

Graph Coloring獨立模板題

匈牙利 ins color mem ace rec ram 算法 rst Graph Coloring POJ - 1419 You are to write a program that tries to find an optimal coloring for

HDU3829:Cat VS Dog獨立

Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 4751  &n

HDU 3829 - Cat VS Dog獨立

The zoo have N cats and M dogs, today there are P children visiting the zoo, each child has a like-animal and a dislike-animal, if the child's like-an

HDU 1068 - Girls and Boys 獨立

the second year of the university somebody started a study on the romantic relations between the students. The relation “romantically involved” is def

Codeforces Round #533 (Div. 2) E. Helping Hiasat獨立

鏈接 data == ans eps const fin 表示 之間 題目鏈接:https://codeforces.com/contest/1105/problem/E 題意:有 n 個事件,op = 1 表示我可以修改昵稱,op = 2 表示一個名為 s_i 的朋友查詢

3081 Marriage Match II 流 之 二分匹配 + 二分

                                          Marriage Match II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O

BZOJ1143CTSC2008祭祀river 傳遞閉包、獨立網路流寫的

#include <stdio.h> int main() { puts("轉載請註明出處謝謝"); puts("http://blog.csdn.net/vmurder/artic

洛谷P2774 方格取數問題 BZOJ 1143祭祀river二分獨立

網絡 方格取數 == 二分圖最大獨立集 ostream pro 就會 最大流 HR 講解前首先引入兩個概念 二分圖最小點覆蓋集 定義: 在二分圖中求出一個最小點集 使得圖中任意一條邊至少有一個端點在點集內 解法: 對二分圖進行最大匹配 最大匹配數就是二分圖的最小點覆蓋集包含

bzoj1143: [CTSC2008]祭祀river二分匹配

題目傳送門 題面有點坑(對於我這種不讀題面的人來說) 題面上有個大大的圖。我看了一下好像是環誒。 我就以為這題有環。 一開始 我想: 既然有環,那麼我用強聯通縮點之後每個環最多隻能選出一個點咯。 然後我再在剩下的點裡面求點集,使兩兩不能互相到達。

網絡流24題二分點權獨立方格取數問題

程序 最大獨立集 取數 ron align desc 表示 就是 證明 Description 在一個有m*n 個方格的棋盤中,每個方格中有一個正整數。現要從方格中取數,使任意2 個數所在方格沒有公共邊,且取出的數的總和最大。試設計一個滿足要求的取數算法。編程任務:對於給

網絡流24題圓桌聚餐

cpp pan pos har pre cst ++ get post 【網絡流24題】圓桌聚餐(最大流) 題面 Cogs 題解 這道題很簡單 首先每個單位的人數限制 直接從源點向單位連邊,容量為人數 同樣的, 每個桌子向匯點連邊,容量為可以坐的人數 因為每個桌子只能夠做一

Usaco2008 Oct灌水 小生成樹

算法 操作 while 進行 題目 nbsp IT farm ostream 題目描述 Farmer John已經決定把水灌到他的n(1<=n<=300)塊農田,農田被數字1到n標記。把一塊土地進行灌水有兩種方法,從其他農田飲水,或者這塊土地建造水庫。 建造一

SPOJ - SCITIESSelfish Cities小費用

Far, far away there is a world known as Selfishland because of the nature of its inhabitants. Hard times have forced the cities of Selfishland to ex