poj 2226 還是最小點覆蓋的匹配問題

2021-09-07 21:53:23 字數 943 閱讀 4396

這題比3041要有點難度,主要是在判斷節點的時候,要兩次掃瞄輸入的矩陣。這個叫我shi也想不到啊。。人家discuss裡面給了很好的模板,學著點吧。具體的分析請看下面:

**:sample:

4 4*.*.

.***

***.

..*.

把行裡面連在一起的坑連起來視為乙個點,即一塊橫木板,編上序號,sample則轉化為:

1 0 2 0

0 3 3 3

4 4 4 0

0 0 5 0

把這些序號加入x集合,再按列做一次則為:

1 0 4 0

0 3 4 5

2 3 4 0

0 0 4 0

同樣加入y集合,乙個坑只能被橫著的或者被豎著的木板蓋住,將原圖的坑的也標上不同的序號,一共九個坑

1 . 2 .

. 3 4 5

67 8 .

. . 9 .

比如7號坑可以被橫著的4號木板和豎著的3號木板蓋住,把每個點的對應的橫木板(4)和豎木板(3)中間連一條邊的話,則問題轉化為 找盡量少的邊把這些點都蓋住,根據定理便是求最大匹配數.

#include #include 

using

namespace

std;

#define maxn 501

intn,k;

bool

map[maxn][maxn],v[maxn];

intlink[maxn];

bool dfs(int

x) }

}return

false;}

intmain()

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

printf(

"%d\n

",result);

return0;

}

poj 2226 還是最小點覆蓋的匹配問題

這題比3041要有點難度,主要是在判斷節點的時候,要兩次掃瞄輸入的矩陣。這個叫我shi也想不到啊。人家discuss裡面給了很好的模板,學著點吧。具體的分析請看下面 sample 4 4 把行裡面連在一起的坑連起來視為乙個點,即一塊橫木板,編上序號,sample則轉化為 1 0 2 0 0 3 3 ...

POJ2226 不錯的最小頂點覆蓋

題意 給你乙個n m 的矩陣,上面有 和 讓你用少的木板吧所有 覆蓋,木板寬度是1,長度隨意,木板可以重疊,但是不能覆蓋到 上。思路 這個題目建圖方式不錯,回想下最基本的最小定點覆蓋,也是在n m 的矩陣上,覆蓋某些點,但是可以覆蓋 那樣直接匹配行列就行了,這個如果是 就得用兩個了,那我們可以直接把...

POJ3041最小點覆蓋

頂點覆蓋 g中的任意邊都至少有乙個端點屬於s的頂點幾何 s 屬於 v 最小頂點覆蓋,就是盡可能少的選出一些點構成集合s,使得圖g中任意邊,都至少又乙個端點屬於s 每一列當成乙個點,每一行當成乙個點,若行節點和列節點之間有邊,則表明該行列該列有乙個障礙物。主要是構圖 將每一行當成乙個點,構成集合1,每...