类似题目(一模一样):http://poj.org/problem?id=1149

我这里以poj1149的PIGS为例,

新建源点s和汇点t,n个顾客作为中间的点,,对于每个顾客,他可以解锁一定的猪圈,枚举这些猪圈,如果当前枚举的猪圈是第一次解锁,由s向该顾客连边,容量为初始时该猪圈中猪的数量;如果猪圈在之前就被解锁了,由最先解锁它的顾客向当前顾客连边,容量为正无穷(因为管理员可以重新分配解锁的猪圈中猪的数量)。最后由每个顾客向汇点连边,容量就是该顾客想买的数量。

 1 #include<bits/stdc++.h>
2 using namespace std;
3 const int INF=0x3f3f3f3f;
4 const int N=610,M=4e6+10;
5 int m,n,s,t,d[N],pre[2510];
6 int head[N],tot=-1,nxt[M],to[M],cap[M],k[2510];
7 //tot=-1***********
8 bool bfs(){
9 memset(d,0,sizeof(d));
10 d[s]=1;
11 queue<int> q;
12 q.push(s);
13 while(!q.empty()){
14 int u=q.front();q.pop();
15 for(int i=head[u];~i;i=nxt[i]){
16 int v=to[i];
17 if(!d[v]&&cap[i]){
18 d[v]=d[u]+1;
19 if(v==t) return true;
20 q.push(v);
21 }
22 }
23 }
24 return false;
25 }
26
27 int dfs(int x,int flow){
28 if(x==t) return flow;
29 int rest=flow;
30 for(int i=head[x];~i&&rest;i=nxt[i]){
31 int v=to[i];
32 if(d[v]==d[x]+1&&cap[i]){
33 int t=dfs(v,min(cap[i],rest));
34 if(!t) d[v]=0;
35 cap[i]-=t;
36 cap[i^1]+=t;
37 rest-=t;
38 }
39 }
40 return flow-rest;
41 }
42
43 int dinic(){
44 int maxflow=0;
45 while(bfs()) maxflow+=dfs(s,INF);
46 return maxflow;
47 }
48
49 void add(int x,int y,int z){
50 nxt[++tot]=head[x];
51 head[x]=tot;
52 to[tot]=y;
53 cap[tot]=z;
54 }
55
56 int main(){
57 int a,b,x;
58 cin>>m>>n;
59 s=0;t=n+1;
60 memset(pre,-1,sizeof(pre));
61 memset(head,-1,sizeof(head));
62 for(int i=1;i<=m;i++) cin>>k[i];
63 for(int i=1;i<=n;i++){
64 cin>>a;
65 while(a--){
66 cin>>x;
67 if(pre[x]==-1){
68 add(s,i,k[x]);
69 add(i,s,0);
70 }
71 else{
72 add(pre[x],i,INF);
73 add(i,pre[x],0);
74 }
75 pre[x]=i;
76 }
77 cin>>b;
78 add(i,t,b);
79 add(t,i,0);
80 }
81 cout<<dinic();
82 return 0;
83 }

建好图后套最大流模板就行了(要把模板理解透彻啊,不要像我,成功建好图后套模板出了问题,调试了好久......)

洛谷P4638 SHOI2011 银行 ( 最大流)的更多相关文章

  1. 洛谷.4015.运输问题(SPFA费用流)

    题目链接 嗯..水题 洛谷这网络流二十四题的难度评价真神奇.. #include <queue> #include <cstdio> #include <cctype&g ...

  2. 洛谷P3381 最小费用最大流

    费用流板子 还是一道板子题..先练练手 #include <bits/stdc++.h> #define INF 0x3f3f3f3f #define full(a, b) memset( ...

  3. 洛谷P4015 运输问题(费用流)

    传送门 源点向仓库连费用$0$,流量为储量的边,商店向汇点连费用$0$,流量为需求的边,然后仓库向商店连流量$inf$,费用对应的边,跑个费用流即可 //minamoto #include<io ...

  4. 洛谷P4014 分配问题(费用流)

    传送门 可以把原图看做一个二分图,人在左边,任务在右边,求一个带权的最大和最小完美匹配 然而我并不会二分图做法,所以只好直接用费用流套进去,求一个最小费用最大流和最大费用最大流即可 //minamot ...

  5. 洛谷 - P4452 - 航班安排 - 费用流

    https://www.luogu.org/problemnew/show/P4452 又一道看题解的费用流. 注意时间也影响节点,像题解那样建边就少很多了. #include<bits/std ...

  6. 洛谷P3254 圆桌问题(最大流)

    题意 $m$个不同单位代表参加会议,第$i$个单位有$r_i$个人 $n$张餐桌,第$i$张可容纳$c_i$个代表就餐 同一个单位的代表需要在不同的餐桌就餐 问是否可行,要求输出方案 Sol 比较zz ...

  7. 洛谷P3381 最小费用最大流模板

    https://www.luogu.org/problem/P3381 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用 ...

  8. 洛谷.3254.圆桌问题(最大流ISAP)

    题目链接 日常水题 还是忍不住吐槽这题奇怪的评价 #include <cstdio> #include <cctype> #include <algorithm> ...

  9. 洛谷P4287 [SHOI2011]双倍回文(回文自动机)

    传送门 听说有大佬用manacher$O(n)$过此题……太强啦…… 说一下PAM的做法吧.(看了题解之后发现)蛮简单的 我们肯定要先建出回文自动机的 然后如果是枚举每一个节点暴跳fail指针肯定得T ...

随机推荐

  1. 第八天pyhton3 函数的返回值、作用域

    返回值 pthon函数使用return语句返回"返回值": 所有函数都有返回值,如果没有return语句,隐式调用return None: return 语句并不一定是函数的语句块 ...

  2. HTTP的三次握手和四次挥手,以及DNS流程解析

    首先模拟一个场景:你在浏览器输入自己想要访问的地址,浏览器发送请求到服务端,服务端进行响应,浏览器进行数据页面渲染,从而你得到自己想要访问地址的页面 总体流程图: DNS:可以认为域名与对应的ip转化 ...

  3. selenium结合jmeter进行测试

    背景 现在市面上有众多成熟的性能测试工具,JMeter就是其中之一.可以通过JMeter快速将已有的Selenium代码以性能测试的方式组织起来,并使用JMeter丰富的报表功能展示测试结果. 相关链 ...

  4. Luogu3594 [POI2015]WIL-Wilcze doły (双端队列)

    单调性显然,双端队列队列维护严格单调递减手写双端队列真的可恶. #include <iostream> #include <cstdio> #include <cstri ...

  5. ZZH与计数(矩阵加速,动态规划,记忆化搜索)

    题面 因为出题人水平很高,所以这场比赛的题水平都很高. ZZH 喜欢计数. ZZH 有很多的数,经过统计,ZZH一共有 v 0 v_0 v0​ 个 0 , v 1 v_1 v1​ 个 1,-, v 2 ...

  6. 随机视频API

    首先打开服务器创建一个html文件也可以不创建 代码如下 点击查看代码 <!DOCTYPE html> <html lang="zh-CN"> <he ...

  7. ELK技术-Logstash

    1.背景 1.1 简介 Logstash 是一个功能强大的工具,可与各种部署集成. 它提供了大量插件,可帮助业务做解析,丰富,转换和缓冲来自各种来源的数据. Logstash 是一个数据流引擎 它是用 ...

  8. D - Distinct Trio

    D - Distinct Trio 题意:求三个数个各不相同的数目. 题解:正面考虑比较困难,可以反向思考,在总值上减去不符合的即可 #include<bits/stdc++.h> usi ...

  9. 【多服务场景化解决方案】智能家居(UrbanHome)

    ​ 介绍 UrbanHome是一款提供房屋维修服务的移动应用.如有维修需求,用户可通过该应用联系所在城市的管道工,电工,保洁,漆匠,木匠,修理工等,或是搜寻导航附近的维修商店. 通过构建UrbanHo ...

  10. DOS文档