博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[网络流24题] 试题库问题
阅读量:4566 次
发布时间:2019-06-08

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

题目链接:

太水了啦
直接最大流跑输出即可。
代码如下:

#include
#include
#include
#include
#include
#include
#define MAXN 100010using namespace std;struct Edge{int nxt,to;long long dis;}edge[MAXN<<2];int head[MAXN<<1],dep[MAXN<<1],cur[MAXN<<1],c[MAXN<<1];int n,m,s,t,edge_number=1;long long tot=0;inline void add(int from,int to,long long dis){ edge[++edge_number].dis=dis; edge[edge_number].nxt=head[from]; edge[edge_number].to=to; head[from]=edge_number;}inline bool bfs(int s,int t){ queue
q; memset(dep,0x3f,sizeof(dep)); memcpy(cur,head,sizeof(head)); q.push(s); dep[s]=0; while(!q.empty()) { int u=q.front(); q.pop(); for(int i=head[u];i;i=edge[i].nxt) { int v=edge[i].to; if(dep[v]==0x3f3f3f3f&&edge[i].dis) { dep[v]=dep[u]+1; q.push(v); } } } if(dep[t]==0x3f3f3f3f) return false; return true;}inline long long dfs(int now,int t,long long minn){ if(now==t||minn==0) return minn; long long flow=0,f; for(int i=cur[now];i;i=edge[i].nxt) { int v=edge[i].to; cur[now]=i; if(dep[v]==dep[now]+1&&(f=dfs(v,t,min(minn,edge[i].dis)))) { flow+=f; minn-=f; edge[i].dis-=f; edge[i^1].dis+=f; if(!minn) break; } } return flow;}inline long long dinic(int s,int t){ long long ans=0; while(bfs(s,t)) ans+=dfs(s,t,(long long)1e18); return ans;}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&c[i]),tot+=c[i]; for(int i=1;i<=m;i++) { int p; scanf("%d",&p); for(int j=1;j<=p;j++) { int cur; scanf("%d",&cur); add(i,cur+m,1); add(cur+m,i,0); } } for(int i=1;i<=m;i++) add(0,i,1),add(i,0,0); for(int i=1;i<=n;i++) add(m+i,n+m+1,c[i]),add(n+m+1,m+i,0); if(dinic(0,n+m+1)

转载于:https://www.cnblogs.com/fengxunling/p/10295275.html

你可能感兴趣的文章
构建之法阅读笔记之四
查看>>
10.15习题2
查看>>
Windows Server 2008 R2 备份与恢复详细实例
查看>>
Ubuntu上kubeadm安装Kubernetes集群
查看>>
关于java学习中的一些易错点(基础篇)
查看>>
MFC的多国语言界面的实现
查看>>
四则运算个人项目 最终版
查看>>
java线程系列---java5中的线程池
查看>>
SQL表连接
查看>>
新秀系列C/C++经典问题(四)
查看>>
memset函数具体说明
查看>>
经常使用的android弹出对话框
查看>>
确保新站自身站点设计的合理性的六大注意点
查看>>
promise
查看>>
Go 网络编程笔记
查看>>
[]Java面试题123道
查看>>
中间件与auth认证的那点儿所以然
查看>>
Scala
查看>>
Android 中LinearLayout控件属性
查看>>
面向对象之多态性
查看>>