首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

2分匹配模版

2013-09-05 
二分匹配模版int lef[N*N]//lef[v]表示右边点v 当前连接的点bool T[N*N]//右边的点是否连过vectorintG

二分匹配模版

int lef[N*N];//lef[v]表示右边点v 当前连接的点bool T[N*N];//右边的点是否连过vector<int>G[N];//G是映射,G[X集].push_back(Y集)  注意G的初始化bool match(int x){for(int i=0;i<G[x].size();i++){int v=G[x][i];if(!T[v]){T[v]=true;if(lef[v]==-1||match(lef[v])){lef[v]=x;return true;}}}return false;}void solve(){int ans=0;memset(lef,-1,sizeof(lef));for(int i=0;i<pn-1;i++)//左右点集匹配,左点集是 0-(pn-1) 右点集是G[左点].size(){memset(T,0,sizeof(T));if(match(i))ans++;}printf("%d\n",ans);}


 九野的博客,转载请注明出处 http://blog.csdn.net/acmmmm/article/details/10967931

热点排行