大意:N*N的方阵中有m个怪兽,每开一枪可以杀死一行或者一列中的所有怪兽。至少要开多少强。
算法:将行列看作点,怪兽看作边。即现在需要选择最小的点数来关联所有的边。即求最小点覆盖。即最大匹配。
1 #include2 #define SIZE 501 3 using namespace std; 4 int n,k,x,y; 5 int t[SIZE]; 6 bool v[SIZE],str[SIZE][SIZE]; 7 bool find(int x) 8 { 9 for(int i=0;i