package com.bluecup.org;
import java.util.Arrays;
import java.util.Scanner;
public class Hungary {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
int value;
n=scan.nextInt();
int d[][]=new int[n+1][n+1];
for(int i=1;i<=n;i++)
Arrays.fill(d[i], -1);
Arrays.fill(linkey, 0);
do
{
int i=scan.nextInt();
int j=scan.nextInt();
value=scan.nextInt();
if(value>0)
d[i][j]=value;
}while(value>0);
value=0;
for(int i=1;i<=n;i++)
{
Arrays.fill(used, false);
if(hungary(i,d))
value++;
}
System.out.println(value);
}
static int n;
static int linkey[]=new int [10];
static boolean used[]=new boolean [10];
private static boolean hungary(int x, int[][] d) {
// TODO Auto-generated method stub
for(int i=1;i<=n;i++)
{
if(d[x][i]>0&&!used[i])
{
used[i]=true;
if(linkey[i]==0||hungary(linkey[i], d))
{
linkey[i]=x;
return true;
}
//used[i]=false;
}
}
return false;
}
}
11万+

被折叠的 条评论
为什么被折叠?



