【題目大意】
給出一張圖,'*'表示不能走的障礙。已知每只軍隊可以按照r*c的方向行軍,且軍隊與軍隊之間路徑不能交叉。問佔據全部'.'最少要多少支軍隊?
【思路】
首先注意題意中有說「軍隊只能往下走」,弄清楚方向。
從某點往它能走的四個點走一趟,連邊。最小路徑覆蓋=總數-二分圖最大匹配。
哦耶!老了,連匈牙利的板子都敲錯orzzzzzz
1 #include2using
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.每支軍隊可以從任意乙個城鎮出發,並只能從上往向下征戰,不能回頭。途中只能...