思路:

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

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

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

流量上限变成R-L

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

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

//By SiriusRen
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
const int N=,M=,inf=0x3f3f3f3f;
int n,xx,yy,op;
int first[N],next[M],v[M],edge[M],cost[M],tot;
int vis[N],with[N],minn[N],d[N],ans;
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++;}
void add(int x,int y,int C,int E){Add(x,y,C,E),Add(y,x,-C,);}
bool tell(){
mem(vis,),mem(with,),mem(minn,0x3f),mem(d,0x3f);
queue<int>q;q.push(),d[]=;
while(!q.empty()){
int t=q.front();q.pop(),vis[t]=;
for(int i=first[t];~i;i=next[i])
if(d[v[i]]>d[t]+cost[i]&&edge[i]){
minn[v[i]]=min(minn[t],edge[i]),with[v[i]]=i,d[v[i]]=d[t]+cost[i];
if(!vis[v[i]])vis[v[i]]=,q.push(v[i]);
}
}return d[n+]!=0x3f3f3f3f;
}
int zeng(){
for(int i=n+;i;i=v[with[i]^])
edge[with[i]]-=minn[n+],edge[with[i]^]+=minn[n+];
return minn[n+]*d[n+];
}
int main(){
memset(first,-,sizeof(first));
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&op);
add(i,,,inf),add(i,n+,,op);
while(op--)scanf("%d%d",&xx,&yy),add(i,xx,yy,inf),add(,xx,yy,);
}
while(tell())ans+=zeng();
printf("%d\n",ans);
}

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. JavaFX桌面应用开发-鼠标事件和键盘事件

    鼠标相关事件的操作初始代码 package application; import javafx.application.Application;import javafx.event.ActionE ...

  2. Unity的分辨率

    问题: 强制设置程序运行的分辨率 解决办法: 在程序开始运行时就对分辨率进行设定 设定方法如下: void GetResolution() { int width = Screen.currentRe ...

  3. python合并多个txt文件成为一个文件

    #coding=utf-8 import os import os.path #文件夹遍历函数 #获取目标文件夹的路径 filedir = './data/click_data' #获取当前文件夹中的 ...

  4. python 单元测试中处理用例失败的情况

    今天有一个需求, 在单元测试失败的时候打印一些日志, 我们管他叫 dosomething 吧 ,反正就是做一些操作 查了下并没有查到相关的方法, 于是研究了一波unittest 的源码 发现了这个东西 ...

  5. Use emcli to delete obsolete agent targets in Oracle EM Cloud Control 12c

    [oracle@oem ~]$ cd /oem/oms/oms/bin   登录到oms中 [oracle@oem bin]$ ./emcli login -username=sysman Enter ...

  6. Django——13 Auth系统 登陆注册实例 权限的实现

    Django Auth系统中的表 注册登陆实例 权限的实现 登陆权限 操作权限 组操作  Auth系统中的表 从表的名称我们就能看出,auth_user,auth_group,auth_permiss ...

  7. Pycharm 的基本操作

    下载:https://www.jetbrains.com/pycharm/ 安装:随意安装在那个目录都可以 注册:可以采用 激活码 或者激活服务器,并对应在选项下面填入激活码或者激活服务器URL即可. ...

  8. 知新之--12-factors

    作为总的原则,在程序设计上很有高度... 参考URL:http://12factor.net/zh_cn/ ========================================== 12- ...

  9. java.lang.ClassFormatError: Unknown constant tag 0 in class file

    在通过文件上传之后,运行java程序,突然发现这么一个错误:java.lang.ClassFormatError: Unknown constant tag 0 in class file,通过网上查 ...

  10. mysql子查询案例

    源SQL如下: 创建数据表 CREATE TABLE IF NOT EXISTS tdb_goods(     goods_id SMALLINT UNSIGNED PRIMARY KEY AUTO_ ...