POJ 1325 ZOJ 1364 最小覆蓋點集

2021-09-08 16:54:08 字數 602 閱讀 3527

題意:有a,b兩台機器, 機器a 有 n個模式(0, 1, 2....n-1),同樣機器b有m個模式, 兩個機器一開始的模式都為0,有k個作業(id,x,y) 表示作業編號id, 該作業必須在a機器在模式x下或者b機器在模式y下完成,問你至少要切換幾次機器模式。

思路:很裸的最小覆蓋點集,不熟悉概念的多看看藍書吧,很容易證明 最小覆蓋點集 == 最大匹配

#include #include #include using namespace std;

vector edge[113];

int pre[113];

bool vis[113];

int n, m, q;

bool dfs(int u)

} return 0;

}int main()

memset(pre, -1, sizeof(int)*m);

int cnt = 0;

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

printf("%d\n", cnt);

} return 0;

}

POJ 3041 Asteroids(最小點覆蓋)

poj 3041 asteroids 題意 給出m個點的所在行列,每次可以選擇清除一行或者一列,問清除這些點的最小操作次數是多少?分析 將所有點的行看成一組,所有的點列看成一組,對每個點的行和列建一條邊,每條邊就代表乙個點,清除一行或者一列可以看成選擇二分圖中的乙個點,清除所有的點,就相當於選擇二分...

POJ 3041 Asteroids 最小點覆蓋

題意 用最少的射擊來消滅圖中的小行星。關鍵是建圖轉化,建乙個 橫座標到縱座標的二分圖,有障礙的點的位置上的值賦值為1,然後根據題意求的是二分圖的最小點覆蓋數,根據乙個定理,知道最小點覆蓋數 最大匹配數 ac include include include include include includ...

POJ 3041 Asteroids(最小點覆蓋)

題意 在乙個網格中有若干個點,每一次可以一下子清除一行或者一列,問最少幾次可以將網格中的點全部清除。通過每個點建立橫座標與縱座標的連線 即建邊 將橫座標和縱座標看做二分圖中的點,選擇最少的點來覆蓋所有的邊。include include include include include include...