bzoj2150 部落戰爭(最小路徑覆蓋)

2021-08-02 14:18:07 字數 769 閱讀 4150

題目:

我是超連結

題解:最小路徑覆蓋裸題,這裡說一下最小路徑覆蓋

乙個有向無環圖(可以不是二分圖),求用盡量少的不相交路徑覆蓋所有點

建圖方法:把原圖中的每乙個點拆成兩個點,連邊跑最大匹配

最小路徑覆蓋數=頂點數-最大匹配

**:

#include #include #include #define n 105

using namespace std;

int m,n,tot;

int belong[n*n*2],vis[n*n*2],point[n*n*2],v[n*n*10],nxt[n*n*10],c[55][55];

char d[55][55];

bool cl(int i,int j,int r,int c)

bool cl1(int i,int j,int r,int c)

void addline(int x,int y)

bool find(int x,int k)

}return false;

}int main()

int hh=0;

for (i=1;i<=m;i++)

for (j=1;j<=n;j++)

if (d[i][j]=='.')

for (i=1;i<=nn;i++)

if (find(i,i)) hh++;

printf("%d",nn-hh);

}

bzoj2150 部落戰爭

lanzerb的部落在a國的上部,他們不滿天寒地凍的環境,於是準備向a國的下部征戰來獲得更大的領土。a國是乙個m n的矩陣,其中某些地方是城鎮,某些地方是高山深澗無人居住。lanzerb把自己的部落分成若干支軍隊,他們約定 1.每支軍隊可以從任意乙個城鎮出發,並只能從上往向下征戰,不能回頭。途中只能...

BZOJ2150 部落戰爭

bzoj2150 部落戰爭 lanzerb的部落在a國的上部,他們不滿天寒地凍的環境,於是準備向a國的下部征戰來獲得更大的領土。a國是一 個m n的矩陣,其中某些地方是城鎮,某些地方是高山深澗無人居住。lanzerb把自己的部落分成若干支軍隊,他們 約定 1.每支軍隊可以從任意乙個城鎮出發,並只能從...

bzoj2150 部落戰爭

補了一下匈牙利的各種騷操作。最大匹配等於最小覆蓋 最大獨立集 n 最小覆蓋 最大團 補圖的最大獨立集 對於這題,把每個點拆成兩個,可以到達的就連邊。我匈牙利的模版是真不熟。include include include include include include using namespace ...