杭电 2063 java 二分图

来源:互联网 发布:大数据魔方 编辑:程序博客网 时间:2024/05/22 12:08
import java.util.Arrays;import java.util.Scanner;  import java.math.*;public class Main {  public int map[][] = new int[1010][1010];public int match[] = new int[1010];        public int used[] = new int[1010]; public  boolean find(int x,int n){ for(int i = 1;i <=n;i++) { if((used[i]==0) &&map[x][i]==1)  { used[i] =1; if(match[i]==-1||find(match[i],n))//如果i点没有匹配或i点可以匹配   { match[i]= x; return true; } } }return false;}  public static void main(String[] args){          Scanner cin=new Scanner(System.in);       int k,m,n;     while(cin.hasNext()) {     k = cin.nextInt();     if(k == 0)     System.exit(0);     m = cin.nextInt();     n = cin.nextInt();     int cnt = 0;    Main lei =new Main();     Arrays.fill(lei.match, -1);    for(int i = 0;i<lei.map.length;i++)    {    for(int j = 0;j<lei.map.length;j++)    lei.map[i][j] =0;    }     for(int i = 1; i<= k;i++)     {     int a,b ;     a =cin.nextInt();     b = cin.nextInt();     lei.map[a][b] = 1;     }     for(int i  = 1;i<=m;i++)     {     Arrays.fill(lei.used, 0);     if(lei.find(i,n))     cnt++;     }     System.out.println(cnt);     }  }}
public int map[][] = new int[1010][1010]; //map[][]邻接矩阵,match[x1]=y1表示x1的部分图的匹配点是y1.used[i]表示是否被遍历
//如果i点没有被遍历过,且i与x是不同的部分图 
 if(match[i]==-1||find(match[i],n))//如果i点没有匹配或i点可以匹配

 
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 松花糕 松花玉 松花伴侣片 松花蛇图片 松花的功效 松花鸡蛋 松花菌 松花玉米粉 国珍松花果蔬粉价格 松花糖 松花蛇的养殖 松花芬 姜汁松花 松花鹌鹑蛋 松花鸡 松花饼干 松花酒的功效与作用 松花皮蛋的制作方法 松花糕的做法 松花笺 松花皮蛋图片 松花鸡腿的做法 松花酿酒 松花纸 松花豆腐的做法 松花拌豆腐 大棚松花菜种植技术 松花芪蓉酒 翡翠的松花 松花蛇有毒吗 庆农65松花菜 松花皮蛋是哪里的特产 松花的作用 松花饼的做法 国珍松花伴侣 松珍牌松花芪蓉酒 国珍牌松花伴侣片 松花豆腐做法 松花皮蛋产地 国珍松花伴侣的功效 松花钙奶