博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 2039 & 洛谷 P1791 人员雇佣 —— 二元关系最小割
阅读量:5037 次
发布时间:2019-06-12

本文共 1579 字,大约阅读时间需要 5 分钟。

题目:

做法就这样:

如果不是先连边再加边权(话说这样很奇怪啊),而是算好边权再连边,再各种等价改一改,就能快2000ms,能在洛谷上A了...

代码如下:

#include
#include
#include
#include
using namespace std;typedef long long ll;int const xn=1005,xm=5e6+5;int n,hd[xn],cur[xn],ct=1,to[xm],nxt[xm],dis[xn],S,T;ll c[xm],inf=1e17;queue
q;ll rd(){ ll ret=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=0; ch=getchar();} while(ch>='0'&&ch<='9')ret=ret*10+ch-'0',ch=getchar(); return f?ret:-ret;}void ade(int x,int y,ll f){to[++ct]=y; nxt[ct]=hd[x]; hd[x]=ct; c[ct]=f;}void add(int x,int y,ll f){ade(x,y,f); ade(y,x,0);}bool bfs(){ memset(dis,0,sizeof dis); dis[S]=1; q.push(S); while(q.size()) { int x=q.front(); q.pop(); for(int i=hd[x],u;i;i=nxt[i]) if(!dis[u=to[i]]&&c[i])dis[u]=dis[x]+1,q.push(u); } return dis[T];}ll dfs(int x,ll fl){ if(x==T)return fl; ll ret=0; for(int &i=cur[x],u;i;i=nxt[i]) { if(dis[u=to[i]]!=dis[x]+1||!c[i])continue; ll tmp=dfs(u,min(fl-ret,c[i])); if(!tmp)dis[u]=0; c[i]-=tmp; c[i^1]+=tmp; ret+=tmp; if(ret==fl)break; } return ret;}int main(){ n=rd(); ll x,ans=0; S=0; T=n+1; for(int i=1;i<=n;i++)x=rd(),add(S,i,x); for(int i=1;i<=n;i++) { ll sum=0; for(int j=1;j<=n;j++) { x=rd(); add(i,j,x<<1ll); sum+=x; } add(i,T,sum); ans+=sum; } while(bfs()) { memcpy(cur,hd,sizeof hd); ans-=dfs(S,inf); } printf("%lld\n",ans); return 0;}

 

转载于:https://www.cnblogs.com/Zinn/p/10121107.html

你可能感兴趣的文章
spring boot打成可执行jar
查看>>
linux实现开机自启动脚本
查看>>
进程、线程亲缘性和画笔CPen
查看>>
JavaWeb中的监听器
查看>>
深入理解mongodb查询条件语句
查看>>
caffe源码阅读
查看>>
SQL2005 如何在没有日志文件的情况下如何恢复MDF数据库文件?
查看>>
WPF 按钮圆角 分类: .NET 2012-08-...
查看>>
Swift-Swift中的全局变量和函数的创建
查看>>
MySQL 学习笔记(三):完整性和触发器设计
查看>>
openstack neutron sriov部署
查看>>
[SPSS]学习笔记--数据分布形状描述
查看>>
.NET Framework 卸载工具 -- .NET Framework Cleanup Tool User's Guide
查看>>
如何为ios程序增加itunes同步功能
查看>>
Hibernate QBC 简单收集
查看>>
cf B. Hungry Sequence
查看>>
C语言数组删除增加一个元素
查看>>
Spring MVC JSON 实现JsonSerializer Date类型转换
查看>>
Citrix 服务器虚拟化之十 Xenserver高可用性HA
查看>>
三层架构与MVC
查看>>