二分图最大匹配,点的最小覆盖,最小路径覆盖

来源:互联网 发布:80端口关闭有什么影响 编辑:程序博客网 时间:2024/06/09 03:25
  1. vector<int>vec[N];  
  2. bool vis[N];  
  3. int n,k;  
  4. int next[N+10];  
  5.   
  6. bool find(int t)  
  7. {  
  8.     rep(i,vec[t].size())  
  9.     {  
  10.         int m=vec[t][i];  
  11.         if(vis[m]==false)  
  12.         {  
  13.             vis[m]=true;  
  14.             if(next[m]==-1 || find(next[m]))  
  15.             {  
  16.                 next[m]=t;  
  17.                 return true;  
  18.             }  
  19.         }  
  20.     }  
  21.     return false;  
  22. }  
  23.   
  24. int sum()  
  25. {  
  26.     memset(next,-1,sizeof(next));  
  27.     int m=0;  
  28.     repf(i,1,n)  
  29.     {  
  30.         memset(vis,false,sizeof(vis));  
  31.         if(find(i))  
  32.             m++;  
  33.     }  
  34.     return m;  
  35. }  
  36. int main()  
  37. {   
  38.     //加边  
  39.     int m=sum();  
  40.    return 0;  
  41. }  
0 0
原创粉丝点击