思路:

套用有上下界的网络流 就好了   (这算是裸题吧)

比如 有条 x->y 的边  流量上限为R 下限为L

那么du[x]-=L,du[y]+=L

流量上限变成R-L

du[x]>0  SS->x 流量为du[x]

否则  x->TT 流量为-du[x]

  1. //By SiriusRen
  2. #include <queue>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <algorithm>
  6. using namespace std;
  7. #define mem(x,y) memset(x,y,sizeof(x))
  8. const int N=,M=,inf=0x3f3f3f3f;
  9. int n,xx,yy,op;
  10. int first[N],next[M],v[M],edge[M],cost[M],tot;
  11. int vis[N],with[N],minn[N],d[N],ans;
  12. void Add(int x,int y,int C,int E){edge[tot]=E,cost[tot]=C,v[tot]=y,next[tot]=first[x],first[x]=tot++;}
  13. void add(int x,int y,int C,int E){Add(x,y,C,E),Add(y,x,-C,);}
  14. bool tell(){
  15. mem(vis,),mem(with,),mem(minn,0x3f),mem(d,0x3f);
  16. queue<int>q;q.push(),d[]=;
  17. while(!q.empty()){
  18. int t=q.front();q.pop(),vis[t]=;
  19. for(int i=first[t];~i;i=next[i])
  20. if(d[v[i]]>d[t]+cost[i]&&edge[i]){
  21. minn[v[i]]=min(minn[t],edge[i]),with[v[i]]=i,d[v[i]]=d[t]+cost[i];
  22. if(!vis[v[i]])vis[v[i]]=,q.push(v[i]);
  23. }
  24. }return d[n+]!=0x3f3f3f3f;
  25. }
  26. int zeng(){
  27. for(int i=n+;i;i=v[with[i]^])
  28. edge[with[i]]-=minn[n+],edge[with[i]^]+=minn[n+];
  29. return minn[n+]*d[n+];
  30. }
  31. int main(){
  32. memset(first,-,sizeof(first));
  33. scanf("%d",&n);
  34. for(int i=;i<=n;i++){
  35. scanf("%d",&op);
  36. add(i,,,inf),add(i,n+,,op);
  37. while(op--)scanf("%d%d",&xx,&yy),add(i,xx,yy,inf),add(,xx,yy,);
  38. }
  39. while(tell())ans+=zeng();
  40. printf("%d\n",ans);
  41. }

BZOJ 3876 有上下界的网络流的更多相关文章

  1. BZOJ 2406 二分+有上下界的网络流判定

    思路: 求出每行的和  sum_row 每列的和   sum_line 二分最后的答案mid S->i  流量[sum_row[i]-mid,sum_row[i]+mid] i->n+j ...

  2. ACM/ICPC 之 有流量上下界的网络流-Dinic(可做模板)(POJ2396)

    //有流量上下界的网络流 //Time:47Ms Memory:1788K #include<iostream> #include<cstring> #include<c ...

  3. SGU 194. Reactor Cooling(无源汇有上下界的网络流)

    时间限制:0.5s 空间限制:6M 题意: 显然就是求一个无源汇有上下界的网络流的可行流的问题 Solution: 没什么好说的,直接判定可行流,输出就好了 code /* 无汇源有上下界的网络流 * ...

  4. 【ZOJ2314】Reactor Cooling(有上下界的网络流)

    前言 话说有上下界的网络流好像全机房就我一个人会手动滑稽,当然这是不可能的 Solution 其实这道题目就是一道板子题,主要讲解一下怎么做无源无汇的上下界最大流: 算法步骤 1.将每条边转换成0~u ...

  5. ZOJ 2314 有上下界的网络流

    problemCode=2314">点击打开链接 题意:给定m条边和n个节点.每条边最少的流量和最多的流量.保证每一个节点的出入流量和相等,问能够形成吗,能够则输出每条边的流量 思路: ...

  6. poj_2396 有上下界的网络流

    题目大意 一个mxn的矩阵,给出矩阵中每一行的和sh[1,2...m]以及每一列的数字的和目sv[1,2...n],以及矩阵中的一些元素的范围限制,比如a[1][2] > 1, a[2][3] ...

  7. 【BZOJ2502】清理雪道 有上下界的网络流 最小流

    [BZOJ2502]清理雪道 Description        滑雪场坐落在FJ省西北部的若干座山上. 从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降 ...

  8. 【2018沈阳赛区网络预选赛J题】Fantastic Graph 【有上下界的网络流】

    要补的题太多了导致最近没写博客(好吧是我懒) 题目链接https://nanti.jisuanke.com/t/31447 题意 给出一个二分图,问能否挑选出一些边,使得每个点的度数都在[L,R]这个 ...

  9. ZOJ2314 Reactor Cooling(有上下界的网络流)

    The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear ...

随机推荐

  1. accmcolor

    accmcolor c; c.setcolorindex(1); playertablerecord.setcolor(c);

  2. 前端自动化构建工具gulp使用

    1. 全局安装 gulp: $ npm install --global gulp 2. 作为项目的开发依赖(devDependencies)安装: $ npm install --save-dev ...

  3. Python 连接数据库 day5

    import pymysql #连接数据库,port必须是int型,字符编码是utf8,不能是utf-8,password必须是字符串 conn = pymysql.connect(host=', d ...

  4. [API 开发管理] 分享几个 eoLinker 实用操作技巧

    一键离线导出项目,PDF.WORD等格式任你挑选 举例说明,如果我要将 "示例素材项目" 导出到本地,并且以 PDF 的格式保存. 首先找到该项目所在空间:演示空间,在左边一级菜单 ...

  5. Python3:numpy模块中的argsort()函数

    Python3:numpy模块中的argsort()函数   argsort函数是Numpy模块中的函数: >>> import numpy >>> help(nu ...

  6. opencv图像阈值设置的三种方法

    1.简单阈值设置   像素值高于阈值时,给这个像素赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色).这个函数就是 cv2.threshhold().这个函数的第一个参数就是原图像 ...

  7. hdu2005 第几天?【C++】

    第几天? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  8. 【codeforces 764D】Timofey and rectangles

    [题目链接]:http://codeforces.com/contest/764/problem/D [题意] 给你n个矩形,以左下角坐标和右上角坐标的形式给出; (保证矩形的边长为奇数) 问你有没有 ...

  9. springCloud学习- 路由网关(zuul)

    1.zuul简介 1.1.zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul 在云平台上提供动态路由,监控,弹性, ...

  10. 【学QT】2 - QT/E环境的建立

    Arm-Linux嵌入式QT/E环境的建立(qt/e 3.x系列)          QT/E 3.x系列比QT/E 2.x系列有非常大的改进,大大提高了开发进度,不再使用tmake,安装也更简单.但 ...