遊戲高手的煩惱

2021-06-21 15:48:51 字數 1075 閱讀 1719

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:5 描述

有一位傳說級遊戲高手,在閒暇時間裡玩起了乙個小遊戲,遊戲中,乙個n*n的方塊形區域裡有許多敵人,玩家可以使用炸彈炸掉某一行或者某一列的所有敵人。他是種玩什麼遊戲都想玩得很優秀的人,所以,他決定,使用盡可能少的炸彈炸掉所有的敵人。

現在給你乙個遊戲的狀態,請你幫助他判斷最少需要多少個炸彈才能炸掉所有的敵人吧。

比如說,下圖中x表示敵人

x . x 

. x . 

. x .

則,他只需要炸掉第1行與第2列就能炸掉所有的敵人,所以只需要兩顆炸彈就可以了。

輸入

第一行是乙個整數t,表示測試資料的組數(0

輸出對於每組測試資料,輸出乙個整數表示最少需要的炸彈顆數

樣例輸入

1

3 41 1

1 32 2

3 2

樣例輸出

2
思路:

二分圖最小點集覆蓋:能覆蓋二分圖所有邊的最小點數。這道題的難點就是如何把條件轉化為二分圖, 首先將所給的炸彈的row和col座標作為二分圖的兩個集合, 然後找出能覆蓋所有邊的點的個數。還有個重要定理:könig定理:二分圖最小點集覆蓋數=二分圖最大匹配數, 這樣就可以套用匈牙利演算法模板了。

#include #include #include using namespace std;

vectormap[501];

int mark[501], match[501];

int dfs(int var)

} }return 0;

}int main()

cnt = 0;

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

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

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

}return 0;

}

nyoj 237 遊戲高手的煩惱

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 有一位傳說級遊戲高手,在閒暇時間裡玩起了乙個小遊戲,遊戲中,乙個n n的方塊形區域裡有許多敵人,玩家可以使用炸彈炸掉某一行或者某一列的所有敵人。他是種玩什麼遊戲都想玩得很優秀的人,所以,他決定,使用盡可能少的炸彈炸掉所有的敵人。...

nyoj 237遊戲高手的煩惱 最大匹配

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 有一位傳說級遊戲高手,在閒暇時間裡玩起了乙個小遊戲,遊戲中,乙個n n的方塊形區域裡有許多敵人,玩家可以使用炸彈炸掉某一行或者某一列的所有敵人。他是種玩什麼遊戲都想玩得很優秀的人,所以,他決定,使用盡可能少的炸彈炸掉所有的敵人。...

nyoj237 遊戲高手的煩惱 二分匹配

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 有一位傳說級遊戲高手,在閒暇時間裡玩起了乙個小遊戲,遊戲中,乙個n n的方塊形區域裡有許多敵人,玩家可以使用炸彈炸掉某一行或者某一列的所有敵人。他是種玩什麼遊戲都想玩得很優秀的人,所以,他決定,使用盡可能少的炸彈炸掉所有的敵人。...