[TIOJ] 1089 Asteroids
LINK:http://tioj.infor.org/problems/1089
經典二分圖匹配問題,直接寫就好了,不過我一直對二分圖匹配不熟,希望這次有好好學起來@@,還有我發現我的模板在TIOJ上面不能compile,要想想辦法QQ
也就是每次對新的一顆交錯樹找有沒有擴增路徑之類的。
經典二分圖匹配問題,直接寫就好了,不過我一直對二分圖匹配不熟,希望這次有好好學起來@@,還有我發現我的模板在TIOJ上面不能compile,要想想辦法QQ
也就是每次對新的一顆交錯樹找有沒有擴增路徑之類的。
#include<bits/stdc++.h> using namespace std; int mx[509],my[509]; int n,k,ans; bool adj[509][509]; bool vy[509]; bool DFS(int x) { for(int y = 1; y <= n; y++) if(adj[x][y] && !vy[y]) { vy[y] = 1; if(my[y] == 0 || DFS(my[y])) { tie(mx[x],my[y]) = make_tuple(y,x); return 1; } } return 0; } int main() { cin >> n >> k; while(k--) { int a,b;cin >> a >> b; adj[a][b] = 1; } for(int i = 1; i <= n; i++) { memset(vy,0,sizeof(vy)); if(DFS(i)) ans++; } cout << ans << endl; }
留言
張貼留言