POJ–2289–Jamie's Contact Groups【二分图的多个匹配+二分法答案】

POJ–2289–Jamie's Contact Groups【二分图的多个匹配+二分法答案】

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

链接:#include<cstring> #include<string> #include<fstream> #include<sstream> #include<iostream> #include<iomanip> #include<cstdio> #include<cctype> #include<algorithm> #include<queue> #include<map> #include<set> #include<vector> #include<stack> #include<ctime> #include<cstdlib> #include<functional> #include<cmath> using namespace std; #define PI acos(-1.0) #define MAXN 500010 #define eps 1e-6 #define INF 0x7FFFFFFF #define LLINF 0x7FFFFFFFFFFFFFFF #define seed 131 #define MOD 1000000007 #define ll long long #define ull unsigned ll #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 const int M=2010; int bmap[M][M]; //下标0開始 bool bmask[M]; int nx,ny; int vcy[M]; int cy[M][M]; int limit; //多重匹配限制 bool findpath(int u){ int i,j; for(i = 0; i < ny; i++){ if(bmap[u][i] && !bmask[i]){ bmask[i] = 1; if(vcy[i] < limit){ cy[i][vcy[i]++] = u; return 1; } for(j = 0; j < vcy[i]; j++){ if(findpath(cy[i][j])){ cy[i][j] = u; return 1; } } } } return 0; } bool MulMatch(){ memset(vcy,0,sizeof(vcy)); for(int i=0; i < nx; i++){ memset(bmask,0,sizeof(bmask)); if(!findpath(i)) return 0; } return 1; } char str[5000]; int main(){ int i,j,x; while(scanf("%d%d",&nx,&ny),nx||ny){ memset(bmap,0,sizeof(bmap)); for(i = 0; i < nx; i++){ scanf("%s", str); gets(str); stringstream sin(str); while(sin >> x){ bmap[i][x] = 1; } } int l = 0, r = nx; while(l < r){ limit = (l + r) / 2; if(MulMatch()) r = limit; else l = limit + 1; } printf("%d\n", r); } return 0; }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117199.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Linux 安装nodejs_pe安装linux

    Linux 安装nodejs_pe安装linuxlinux安装Node.js(详细)Node.js安装教程文章目录linux安装Node.js(详细)Node.js安装教程1:下载2:解压3:移动目录1:创建目录2:移动目录并重命名4:设置环境变量5:刷新修改6:安装完成,查看版本号1:下载wgethttps://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz更多版本选择:===》更多nodejs版本下载2:解压tarxfnode-v14.17.4-linux-x64.

    2022年9月12日
  • idea2021.11.3激活(JetBrains全家桶)

    (idea2021.11.3激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html08…

    2022年3月28日
  • android gridlayout点击事件,Android GridLayout

    android gridlayout点击事件,Android GridLayout译者注:说实话我确实没用过GridLayout好好认识一下吧!android开发者每天都在问自己一个问题:我到底应该用哪个layout然而GridLayout在当前开发中的情况如下:大多数开发者并不知道这个布局一些开发者知道GridLayout但是因为某些原因没有使用只有少部分开发者花时间了解和积极使用这是我为什么要写这篇文章的原因,因为我觉得这个布局被不公平遗忘了为什么我们需要GridLa…

    2022年4月30日
  • Eclipse下个人觉得好用的插件

    Eclipse下个人觉得好用的插件

    2022年3月7日
  • platform_driver_register( )过程追踪

    platform_driver_register( )过程追踪以下代码源于linux3.1.9。platform_driver_register()是内核中非常著名的函数。platform_driver_register()负责注册平台驱动程序,如果在内核中找到了使用驱动程序的设备,调用probe()。刨去参数检查、错误处理,platform_driver_register的主要过程如下:。。。{。。。retur…

    2022年7月26日
  • StretchBlt用法[通俗易懂]

    StretchBlt用法[通俗易懂]首先定义protected: BITMAPbmp;其次实现///////////////////////////////////////////////////////////////////////////////CExamineViewdrawingvoidCExamineView::OnDraw(CDC*pDC){ CExamineDoc*pDoc=GetDo

    2022年10月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号