标签:txt rip imu tail idt class get hot navig
poj-3041-Asteroids
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 24115 | Accepted: 13066 |
Description
Input
Output
Sample Input
3 4 1 1 1 3 2 2 3 2
Sample Output
2
Hint
Source
| 17919386 | 3041 | Accepted | 1408K | 16MS | G++ | 721B | 2017-12-04 21:25:29 |
使用匈牙利算法。
典型的匈牙利算法,建立二分图模型。
// poj 3041 hungary
#include <cstdio>
#include <cstring>
const int MAXN = 500 + 10;
int n, k, mp[MAXN][MAXN], vis[MAXN], match[MAXN];
bool dfs(int x){
for(int i=1; i<=n; ++i){
if( mp[x][i] != 0 && vis[i] == 0 ){
vis[i] = 1;
if(match[i] < 0 || dfs(match[i])){
match[i] = x;
return true;
}
}
}
return false;
}
int main(){
freopen("in.txt", "r", stdin);
int num, x, y;
while(scanf("%d %d", &n, &k) != EOF){
memset(mp, 0, sizeof(mp));
for(int i=0; i<k; ++i){
scanf("%d %d", &x, &y);
mp[x][y] = 1;
}
num = 0;
memset(match, -1, sizeof(match));
for(int i=1; i<=n; ++i){
memset(vis, 0, sizeof(vis));
if( dfs( i ) ){
++num;
}
}
printf("%d\n", num );
}
return 0;
}
标签:txt rip imu tail idt class get hot navig
原文地址:http://www.cnblogs.com/zhang-yd/p/7979081.html