最小路徑覆蓋 BZOJ2150 部落戰爭

2022-08-09 06:21:12 字數 926 閱讀 5303

【題目大意】

給出一張圖,'*'表示不能走的障礙。已知每只軍隊可以按照r*c的方向行軍,且軍隊與軍隊之間路徑不能交叉。問佔據全部'.'最少要多少支軍隊?

【思路】

首先注意題意中有說「軍隊只能往下走」,弄清楚方向。

從某點往它能走的四個點走一趟,連邊。最小路徑覆蓋=總數-二分圖最大匹配。

哦耶!老了,連匈牙利的板子都敲錯orzzzzzz

1 #include2

using

namespace

std;

3const

int maxn=55;4

intm,n,r,c,maps[maxn][maxn];

5int lk[maxn*maxn],vis[maxn*maxn];

6 vector e[maxn*maxn];78

int check(int x,inty)9

1213

int id(int x,int y)

1415

void addedge(int u,int

v)16

1920

int find(int

u)2133}

34}35return0;

36}3738

void

init()

3948

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

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

50if

(maps[i][j])

5157}58

59void

solve()

6073

}74 printf("

%d",sum-ans);75}

7677

intmain()

78

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

題目 我是超連結 題解 最小路徑覆蓋裸題,這裡說一下最小路徑覆蓋 乙個有向無環圖 可以不是二分圖 求用盡量少的不相交路徑覆蓋所有點 建圖方法 把原圖中的每乙個點拆成兩個點,連邊跑最大匹配 最小路徑覆蓋數 頂點數 最大匹配 include include include define n 105 us...

(拆點 最小路徑覆蓋) bzoj 2150

time limit 10 sec memory limit 259 mb submit 518 solved 298 submit status discuss lanzerb的部落在a國的上部,他們不滿天寒地凍的環境,於是準備向a國的下部征戰來獲得更大的領土。a國是乙個m n的矩陣,其中某些地方...

bzoj2150 部落戰爭

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