POJ3020 二分匹配

2021-07-24 11:55:29 字數 960 閱讀 9281

思路:

---說給自己

一開始想的是從1-h*w標記整幅圖,建圖是星號和 建邊,肯定要去匹配"*"啊,所以空格一定不會去造,然後就理解成了最小點覆蓋,然而對於最小點覆蓋,對於 孤立點(也就是沒有連出去的邊) ,這樣就錯了。。。但是對於這個思路還是打完了,然後發現錯了。。。其實對於「正確」思路要先想想是嘛。。。

---正解

這題題意是乙個圈最多只能圈兩個" * ",那麼完全可以理解乙個圈就是一條線,連了兩個星號,那麼直接星號和星號建邊,記得建雙向。求乙個最小路徑覆蓋,這裡因為是雙向路徑多了一倍,answer=num-path_num/2;

貼一發挫**;

#include #include #include #include #include #include #include #include #include #include using namespace std;

#define inf 0x3f3f3f

#define pi acos(-1.0)

#define ll long long

int ma[1010][1010];

int cx[1010],cy[1010];

int vis[1010];

int dx[4]=;

int dy[4]=;

int id_num[45][15];

char s[45][15];

int n,m;

int num;

void init()

}}int find_path(int u)}}

return 0;

}int solve()

return ans;

}int main()

{ int t;

scanf("%d",&t);

while(t--)

{scanf("%d%d",&n,&m);

for(int i=0;i

poj 3343 二分匹配 二分

題意 n個人類星球和m個外星人星球,每個星球 包括外星人的 都有乙個初始的飛船數sh1 i 還有乙個每年生產的飛船數p i 還有乙個n m的矩陣d,d i,j 表示從人類星球i到外星人星球j的年數 年啊 當乙個人類星球i可以擊敗乙個外星人星球j的唯一條件是在出發年數ye,ye d i,j p i s...

POJ2446 二分匹配

題意 給你乙個n m的格仔,問你能不能用1 2的格仔把他鋪滿,有的位置是不能被鋪的。思路 水題,直接把個相鄰的並且都是可以鋪的點連一條邊然後匹配一遍就行了,提醒乙個地方,就是輸入不能鋪的座標的時候是 先輸入列再輸入行。include include define n node 1500 define...

POJ3692 二分匹配

題意 有男生女生,男生都認識雙方,女生都認識雙方,給出一些男女關係,問最大拿多少個人,使得所有人都認識雙方。思路 原圖最大團 總結點數 補圖 補圖為二分圖 的最大獨立集 最大完全子圖的頂點數 include include include includeusing namespace std typ...