題目:
我是超連結
題解:最小路徑覆蓋裸題,這裡說一下最小路徑覆蓋
乙個有向無環圖(可以不是二分圖),求用盡量少的不相交路徑覆蓋所有點
建圖方法:把原圖中的每乙個點拆成兩個點,連邊跑最大匹配
最小路徑覆蓋數=頂點數-最大匹配
**:
#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 ...