時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:5 描述
有一位傳說級遊戲高手,在閒暇時間裡玩起了乙個小遊戲,遊戲中,乙個n*n的方塊形區域裡有許多敵人,玩家可以使用炸彈炸掉某一行或者某一列的所有敵人。他是種玩什麼遊戲都想玩得很優秀的人,所以,他決定,使用盡可能少的炸彈炸掉所有的敵人。
現在給你乙個遊戲的狀態,請你幫助他判斷最少需要多少個炸彈才能炸掉所有的敵人吧。
比如說,下圖中x表示敵人
x . x
. x .
. x .
則,他只需要炸掉第1行與第2列就能炸掉所有的敵人,所以只需要兩顆炸彈就可以了。
輸入
第一行是乙個整數t,表示測試資料的組數(0
輸出對於每組測試資料,輸出乙個整數表示最少需要的炸彈顆數
樣例輸入
13 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的方塊形區域裡有許多敵人,玩家可以使用炸彈炸掉某一行或者某一列的所有敵人。他是種玩什麼遊戲都想玩得很優秀的人,所以,他決定,使用盡可能少的炸彈炸掉所有的敵人。...