nyoj 237 最小点覆盖集 vector的使用
2012-12-10 19:25
190 查看
最小点覆盖集=最大匹配。。。
#include<stdio.h> #include<string.h> #include<iostream> #include <vector> using namespace std; vector <int> st[503]; int m,n,u,use[503],lin[503]; int find(int v) { int i,j; for(i=0;i<st[v].size();i++) { int x=st[v][i]; if(!use[x]) { use[x]=1; if(!lin[x]||find(lin[x])) { lin[x]=v; return 1; } } } return 0; } int max() { int i,ans=0; memset(lin,0,sizeof(lin)); for(i=1;i<=m;i++) { memset(use,0,sizeof(use)); if(find(i)) ans++; } return ans; } int main() { scanf("%d",&u); while(u--) { int i,j,x,y,z; scanf("%d%d",&m,&n); for(i=0;i<503;i++) st[i].clear(); for(i=1;i<=n;i++) { scanf("%d%d",&x,&y); st[x].push_back(y); } int zs; zs=max(); printf("%d\n",zs); } return 0; }
相关文章推荐
- nyoj 237 游戏高手的烦恼 二分匹配--最小点覆盖
- NYOJ237 游戏高手的烦恼(最小点集覆盖)
- nyoj237 游戏高手的烦恼(最小点覆盖)
- NYOJ 237 游戏高手的烦恼 最小点集覆盖 = 二分图最大匹配
- C++中使用vector建立最大堆和最小堆
- NYOJ 237 游戏高手的烦恼 (最小点覆盖)
- NYOJ 贪心 vector的使用,是一个数组,有重复数据,可以下标访问
- NYOJ 237 游戏高手的烦恼(二分图最小点集覆盖)
- nyoj237 游戏高手的烦恼(最小点覆盖)
- nyoj 237 游戏高手的烦恼 二分匹配--最小点覆盖
- c++使用vector建立最大堆和最小堆
- c++使用vector建立最大堆和最小堆
- nyoj+stl中bitset的使用+找最小的大的二进制怎么找的
- Java 中 Vector、ArrayList、List 使用深入剖析
- JAVA笔试面试之使用堆排对大量数据进行筛选最大或最小
- C++ STL容器的学习使用(vector、queue、list、set、map)
- Vector使用心得
- 使用::std::vector作为管理动态数组的优先选择 作者原文出处:http://www.cpphelp.net/issue/vector.html
- java中向量类Vector的使用
- nyoj 1239 引水工程【最小生成树】虚拟节点