您的位置:首页 > 其它

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

2013-07-24 10:13 351 查看
vector<int>vec
;
bool vis
;
int n,k;
int next[N+10];

bool find(int t)
{
rep(i,vec[t].size())
{
int m=vec[t][i];
if(vis[m]==false)
{
vis[m]=true;
if(next[m]==-1 || find(next[m]))
{
next[m]=t;
return true;
}
}
}
return false;
}

int sum()
{
memset(next,-1,sizeof(next));
int m=0;
repf(i,1,n)
{
memset(vis,false,sizeof(vis));
if(find(i))
m++;
}
return m;
}
int main()
{
//加边
int m=sum();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐