当前位置: 首页 > 编程日记 > 正文

poj2289二分图多重匹配

题意:给你一张二分图,求右边点到汇点的最小容量(保证流量为n)是多少

题解:二分答案,每次重新建边跑最大流,看是不是为n就好了

#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define C 0.5772156649
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1using namespace std;const double g=10.0,eps=1e-12;
const int N=2000+10,maxn=500000+10,inf=0x3f3f3f3f;struct edge{int to,Next,c;
}e[maxn<<2];
int cnt,head[N];
int dis[N],num;
pii pa[maxn<<1];
void add(int u,int v,int c)
{//  cout<<u<<" "<<v<<" "<<c<<endl;e[cnt].to=v;e[cnt].c=c;e[cnt].Next=head[u];head[u]=cnt++;e[cnt].to=u;e[cnt].c=0;e[cnt].Next=head[v];head[v]=cnt++;
}
bool bfs(int s,int t)
{memset(dis,-1,sizeof dis);dis[s]=0;queue<int>q;q.push(s);while(!q.empty()){int x=q.front();q.pop();if(x==t)return 1;for(int i=head[x];~i;i=e[i].Next){int te=e[i].to;if(dis[te]==-1&&e[i].c>0){dis[te]=dis[x]+1;q.push(te);}}}return 0;
}
int dfs(int x,int mx,int t)
{if(x==t)return mx;int flow=0;for(int i=head[x];~i;i=e[i].Next){int te=e[i].to,f;if(dis[te]==dis[x]+1&&e[i].c>0&&(f=dfs(te,min(mx-flow,e[i].c),t))){e[i].c-=f;e[i^1].c+=f;flow+=f;}}if(!flow)dis[x]=-2;return flow;
}
int maxflow(int s,int t)
{int ans=0,f;while(bfs(s,t)){while((f=dfs(s,inf,t)))ans+=f;}return ans;
}
void init()
{cnt=0;memset(head,-1,sizeof head);
}
char p[N];
int n,m;
int getnum(int l,int r)
{int ans=0;for(int i=l;i<=r;i++)ans=ans*10+p[i]-'0';return ans;
}
bool ok(int x,int s,int t)
{init();for(int i=0;i<num;i++)add(pa[i].fi,pa[i].se,1);for(int i=1;i<=m;i++)add(i+n,t,x);return maxflow(s,t)>=n;
}
int main()
{while(~scanf("%d%d",&n,&m)){if(!n&&!m)break;int s=n+m+1,t=n+m+2;num=0;for(int i=1;i<=n;i++)pa[num++]=mp(s,i);getchar();for(int i=1;i<=n;i++){gets(p);int len=strlen(p),j=0;while(j<len&&p[j]!=' ')j++;j++;for(;j<len;j++){int k=j;while(k+1<len&&p[k+1]!=' ')k++;int res=getnum(j,k)+1;pa[num++]=mp(i,res+n);j=k+1;}}int l=0,r=n+1;while(r-l>1){int m=(l+r)/2;if(ok(m,s,t))r=m;else l=m;}printf("%d\n",r);}return 0;
}
/****************************************/
View Code

转载于:https://www.cnblogs.com/acjiumeng/p/7826626.html

相关文章:

Express应用配置端口

Express应用设置端口方法1 静态修改--直接修改代码中配置的默认端口号方法2 动态修改--修改代码逻辑使其获取启动命令中的端口号参数相关文章在Express应用创建成功后&#xff0c;应用会自动配置一个端口号&#xff0c;比如3000&#xff0c;有时会遇到端口号被占用的情况&#…

Oracle中PL/SQL的循环语句

PL/SQL的三种形式的循环&#xff1a;1.LOOP&#xff08;无条件循环&#xff09;&#xff1a;loopstatements;end loop;2.WHILE&#xff08;有条件循环&#xff09;&#xff1a;while condition loopstatements;end loop;3.FOR&#xff08;固定次数循环&#xff09;&#xff1a;…

处理器调度算法

1. P117页,练习15&#xff1a;最高响应比 HRRF&#xff1a; 作业 提交时刻 运行时刻 开始时刻 完成时刻 周转时间/min 带权周转时间/min 1 10:00 2:00 10:00 12:00 120 120/120 2 10:10 1:00 12:25 13:25 195 195/60 3 10:25 0:25 12:00 12:25 120 …

bzoj4516

后缀自动机 留个板子 upd:大概懂了 每次新加入的npRight集合肯定只有最后一个位置&#xff0c;那么求所有长得不一样的子串贡献就是Max-Min1,因为Right集合只有这一个位置&#xff0c;所以这Max-Min1个子串只出现在最后一个位置。 #include<bits/stdc.h> using namespace…

npm : 无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本

问题&#xff1a; 在VSCode终端使用npm命令时&#xff0c;出现如下报错信息&#xff1a; npm : 无法加载文件 D:\ProgramFiles\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/?Link ID135170 中的 …

Mybatis注解学习记录

Mybatis注解使用1. SQL语句映射1.1 Select注解&#xff1a;实现查询功能1.1.1 用法1.2 Insert注解&#xff1a;实现新增功能1.2.1 用法1.3 Update注解&#xff1a;实现更新功能1.3.1 用法1.4 Delete注解&#xff1a;实现删除功能1.4.1 用法2. 结果集映射2.1 Results注解&#x…

路由和交换机工作原理

路由器与交换机的工作原理 计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起&#xff0c;它们之间并不能进行通信&#xff0c;那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时&#xff0c;就已经暗示这些相互连接的…

嵌套选项卡自动播放

HTML <div class"box" id"box"><ul class"top" id"top"><li class"fl">专题</li><li class"fl">视频</li></ul><div class"clearFix" id"cont"…

Facebook 与 Google 正在主导在线身份验证市场

OpenID 公司 JanRain 的一项研究发现&#xff0c;用户在第三方网站进行身份验证时&#xff0c;最喜欢使用 Google 和 Facebook 的身份验证服务。Facebook 的验证服务 在媒体&#xff0c; 零售&#xff0c;技术等领域略微领先&#xff0c;而 JanRain 的17万份客户数据显示&#…

WIN2K/XP/2003 + APACHE + ASP + PHP + MYSQL 的简易实现

至目前总算完成了WIN2K/XP/2003 APACHE ASP PHP MYSQL这样一个建站项目&#xff0c;回过头来仔细想想也并不复杂。只是经过了反复的安装、卸载、研究、测试带找资料。真正的步骤却也没什么难的&#xff0c;但如果让你从头研究可能也是一件很头痛的事情了&#xff01;所以打…

.net 去除特殊字符

str Regex.Replace(str, "<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase); //str为需要校验的字符 str Regex.Replace(str, "[~#$%^&\*()_\{}\|<>\/\\\[\]]", "", RegexOptions.IgnoreCase…

为TypeScript项目生成API文档

为TypeScript项目生成文档 使用typedoc为TypeScript项目生成API文档。 1. 使用typedoc生成HTML文档 需要安装 typedoc。 npm i typedoc可以通过命令行参数指定配置信息&#xff0c;也可以通过加载配置文件的方式加载配置信息。 本项目中使用加载配置文件typedoc.json的方式…

DropBox免费扩容到10G了

好久没有写博客了,郑重推荐下Dropbox这款同步软件,很多人有多台电脑,比如公司和家里一些文档需要同步更新,用U盘拷贝来拷贝去,不胜其烦.自然而然就想到用同步软件,而这方面DropBox从速度来说,当然是首屈一指的. 先说明DropBox的优点: 使用简单,去官网http://www.dropbox.com下…

子网划分实例与讲解

子网划分 分为两种&#xff1a;◆ 给定网络地址&#xff0c;划分子网。◆不给定网络地址&#xff0c;根据主机数量&#xff0c;自由确定网络地址&#xff0c;进而划分子网。【实例1】给定网络地址&#xff0c;划分子网。我们单位有计算机100台左右&#xff0c;原来都是在192.16…

使用Docsify搭建Markdown文件服务器

使用docsify快速生成文档网站1. 概述2. 安装 docsify-cli 工具3. 初始化项目4. 本地预览5. 多页文档6. 定制导航栏6.1 在index.html中添加导航栏6.2 添加导航栏配置文件6.3 下拉导航栏7. 封面设置7.1 设置封面参数7.2 自定义封面背景7.3 将封面设置为首页配置项elrepomaxLevell…

DirectX903D 颜色

颜色 颜色表示 颜色用RGB三元组表示。为红色&#xff08;red&#xff09;绿色&#xff08;Green&#xff09;蓝色&#xff08;Blue&#xff09;。 RGB数据可用两种不同的结构来保存。 1 D3DCOLOR结构 与DWORD类型完全相同。共有32位。各位被 分成四个8位项&#xff08;sectio…

JAVA SHA1 加密 对应 c# SHA1 加密

java: 1 public static String SHA1(String decript) {2 try {3 MessageDigest digest MessageDigest.getInstance("SHA-1");4 digest.update(decript.getBytes("UTF-8"));5 byte[] messageDigest dige…

VLAN设置错误,导致部分用户无法上网

一、事由&#xff1a; 单位的思科3560交换机安装到位&#xff0c;加班到夜里12点&#xff0c;测试了一下&#xff0c;怎么有些用户PING不到了呢&#xff1f;难道集体关机了吗&#xff1f;太累了&#xff0c;准备明天处理。二、问题&#xff1a; 第二天早上&#xff0…

JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金)

第一&#xff1a; 限制只能是整数 [js] view plaincopy <input type "text" name "number" id number οnkeyup "if(! /^d$/.test(this.value)){alert(只能整数);this.value;}" /> 如果不是整数就直接alert 第二&#xff1a; 限制是两位…

npm包开发测试与发布

NPM 包开发测试与发布NPM 包开发测试与发布引言1. 开发步骤1.1. 项目创建1.2. 工具类功能实现1.3. ts文件编译2. npm包本地测试2.1. 将npm包文件引入项目2.2. npm包功能测试3. 发布4. 注意事项我的NPM包NPM 包开发测试与发布 引言 在项目开发过程中&#xff0c;有时会遇到在多…

Jquery php 点击td变成input,修改后失去焦点发送数据

html部分 <Td><?php echo $row[bigclassid]?></Td> <td height"25" width"241" class"bigclassname"><?php echo $row[bigclassname]?></a></td> Js部分 <script> /**//* * 说明&#xff1…

美元加息怎么“剪羊毛”

我国为什么把美元储备看的如此重要? 我国需要一定的美元储备&#xff0c;不敢把美元随便花出去!1998年亚洲金融危机&#xff0c;东南亚国家为什么抵抗不过对冲基金&#xff0c;就是因为他们手里的美元储备太少&#xff0c;如果你手里美元多&#xff0c;就可以放出美元&#xf…

浅谈企业IT应用的访问方式之:乱想

近来手上的几大块事情&#xff0c;算是大头朝下了。后面可能更多是跟公司的最终用户打交道&#xff0c;一套完整的应用服务体系&#xff0c;不光只是服务器平台的搭建。更重要的是如何让用户觉得确实给他们带来了帮助。 在非洲的一段经历让我们严重认识到一点&#xff0c;其…

java中的基本用法

java中的基本用法 关键字&#xff1a;专门用途的字符串 所有java关键字都是小写英文标识符 java常量 java变量 ■ 作用域&#xff1a;起作用的区域■ 使用前必须先声明&#xff0c;在赋值。使用变量名访问这块区域java程序执行过程 java变量的分类 ■ 局部变量■ 成员变量■…

JavaScript中双叹号(!!)和单叹号(!)

转自&#xff1a;JavaScript中双叹号(!!)作用 经常看到这样的例子&#xff1a; var a&#xff1b; var b!!a; a默认是undefined。!a是true&#xff0c;!!a则是false&#xff0c;所以b的值是false&#xff0c;而不再是undefined&#xff0c;也非其它值&#xff0c;主要是为后续判…

git 初次push

1、本地仓库与远程仓库第一次同步时&#xff0c;一直同步不上 最后 git status ,发现有两个文件没提交 提交后再push即可 2、如果不行&#xff0c;再看一下其他情况 转载于:https://www.cnblogs.com/sanhao/p/10681919.html

简单是可靠的先决条件

2010年4月编程语言排名&#xff0c;C语言重回第1宝座&#xff0c;不禁令人感叹C语言的生命力。 记得有人在几年前发表了一篇C语言已经死了&#xff0c;5个需要忘却它的理由&#xff0c;其后有人发表驳“C语言已经死了”&#xff0c;又有人发表也驳"驳C语言已经死了" …

帮朋友招聘赴北京微软ASP.NET开发工程师

职位要求&#xff1a;1. 3年以上ASP.NET开发经验。2. 有过大型门户网站开发经验。3. 精通ASP.NET WEB开发、Ajax技术&#xff0c;有良好的代码编写习惯。4. 能够熟练运用MVC框架。有意向的朋友可以将简历发到我邮箱&#xff1a;fanmenglifemicrosoftservices.com.cn转载于:http…

xx.xib: error: Illegal Configuration: Safe Area Layout Guide before iOS 9.0报错问题解决

之前是用xcode8.3.3创建的工程最近升级到Xcode9.0 遇见了这个问题 在Xcode 9.0以上 新建xib文件会报错 xx.xib: error: Illegal Configuration: Safe Area Layout Guide before iOS 9.0 是因为在iOS 11上安全距离的变化引起的解决办法如下图&#xff1a;&#xff08;以UITableV…

LuoguP2617 Dynamic Rankings (动态主席树学习理解)

题目地址 题目链接 题解 动态主席树的板子题。动态主席树其实和静态的有很大差别&#xff0c;虽然同样是n个根&#xff0c;但是节点并不能共用&#xff0c;每个根节点表示bit上的一段区间。 所以其实是个树套树的东西来着&#xff0c;外层是bit&#xff0c;内层是主席树。 然后…