题解:

有上限的网络流

基本模板

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
int ne[N],num,n,m,d[N],S,T,a,b,c,low[N],fi[N],zz[N],sl[N],dis[N],q[N];
void jb(int x,int y,int z)
{
ne[num]=fi[x];
fi[x]=num;
zz[num]=y;
sl[num++]=z;
swap(x,y);
z=;
ne[num]=fi[x];
fi[x]=num;
zz[num]=y;
sl[num++]=z;
}
int bfs()
{
memset(dis,0xff,sizeof dis);
dis[]=;
int l=,r=;
q[]=;
while (l<r)
{
int j=q[++l];
for (int i=fi[j];i!=-;i=ne[i])
if (dis[zz[i]]<&&sl[i]>)
{
dis[zz[i]]=dis[j]+;
q[++r]=zz[i];
}
}
if (dis[n]>)return ;
return ;
}
int find(int x,int low)
{
int b=;
if (x==n)return low;
for (int i=fi[x];i!=-;i=ne[i])
if (sl[i]>&&dis[zz[i]]==dis[x]+&&(b=find(zz[i],min(low,sl[i]))))
{
sl[i]-=b;
sl[i^]+=b;
return b;
}
return ;
}
int main()
{
scanf("%d",&T);
while (T--)
{
memset(fi,-,sizeof fi);
num=;
memset(d,,sizeof d);
scanf("%d%d",&n,&m);
for (int i=;i<m;i++)
{
scanf("%d%d%d%d",&a,&b,&low[i],&c);
jb(a+,b+,c-low[i]);
d[a]+=low[i];d[b]-=low[i];
}
int tot=;
for (int i=;i<=n;i++)
{
if (d[i]<)jb(,i+,-d[i]);
else jb(i+,n+,d[i]),tot+=d[i];
}
n+=;
int t,ans=;
while (bfs())
while (t=find(,1e9))ans+=t;
if (tot!=ans)puts("NO");
else
{
puts("YES");
for (int i=;i<m;i++)
printf("%d\n",sl[(i<<)^]+low[i]);
}
puts("");
}
}

zoj2314的更多相关文章

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

    题意: 给n个点,及m根pipe,每根pipe用来流躺液体的,单向的,每时每刻每根pipe流进来的物质要等于流出去的物质,要使得m条pipe组成一个循环体,里面流躺物质. 并且满足每根pipe一定的流 ...

  2. 【模板】无源汇有上下界可行流(网络流)/ZOJ2314

    先导知识 网络最大流 题目链接 https://vjudge.net/problem/ZOJ-2314 题目大意 多组数据,第一行为数据组数 \(T\). 对于每一组数据,第一行为 \(n,m\) 表 ...

  3. ZOJ2314 Reactor Cooling

    Reactor Cooling Time Limit: 5 Seconds      Memory Limit: 32768 KB      Special Judge The terrorist g ...

  4. ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流)

    题目大概说一个核反应堆的冷却系统有n个结点,有m条单向的管子连接它们,管子内流量有上下界的要求,问能否使液体在整个系统中循环流动. 本质上就是求一个无源汇流量有上下界的容量网络的可行流,因为无源汇的容 ...

  5. zoj2314 经典 无源汇有上下界最大流 并输出可行流

    ZOJ Problem Set - 2314 Reactor Cooling Time Limit: 5 Seconds      Memory Limit: 32768 KB      Specia ...

  6. zoj2314(有上下界的网络流)

    传送门:Reactor Cooling 题意:给n个点,及m根pipe,每根pipe用来流躺液体的,单向的,每时每刻每根pipe流进来的物质要等于流出去的物质,要使得m条pipe组成一个循环体,里面流 ...

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

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

  8. 【zoj2314】Reactor Cooling 有上下界可行流

    题目描述 The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuc ...

  9. ZOJ2314:Reactor Cooling——题解

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1314 题目大意:无源汇上下界网络流,问每个管子走多少流量才能满足所有管子的下界 ...

随机推荐

  1. vue - nodejs

    一.知识 打开Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.cn/ 我们会发现这样一句话: 翻译成中文如下: Node.js 是一个基于 Chr ...

  2. django如何防止csrf(跨站请求伪造)

    什么是CSRF 下面这张图片说明了CSRF的攻击原理: Django中如何防范CSRF Django使用专门的中间件(CsrfMiddleware)来进行CSRF防护.具体的原理如下: 1.它修改当前 ...

  3. ReactiveCocoa 初学者使用

    skip 跳过几个信号,不接受 filter :过滤 ignore:忽略某一个值 take:从开始一共取N次的信号 ignoreValues 这个比较极端,忽略所有值,只关心Signal结束,也就是只 ...

  4. MySql创建函数与过程,触发器, shell脚本与sql的相互调用。

    一:函数 1:创建数据库和表deptartment, mysql> use DBSC; Database changed mysql), ), )); Query OK, rows affect ...

  5. (转)Springboot+shiro配置笔记+错误小结

    springboot不像springmvc,它没有xml配置文件,那该如何配置shiro呢,其实也不难,用java代码+注解来解决这个问题.仅以此篇记录我对shiro的学习,如有对过客造成不便,实在抱 ...

  6. /etc/rc.d/rc.local linux启动自动开启某些服务(转)

    /etc/rc.d/rc.local似乎是很多Linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务.程序等,只要系统没有提供Sys V风格的启动脚本,就把这些需求都塞到/etc/rc.d/rc ...

  7. mysql性能测试-tpcc

    mysql性能测试-tpcc Tpcc-mysql TPC-C是专门针对联机交易处理系统(OLTP系统)的规范 Tpcc-mysql由percona根据规范实现 TPCC流程  更能模拟线上业务   ...

  8. zw版【转发·台湾nvp系列Delphi例程】HALCON HSerializedItem

    zw版[转发·台湾nvp系列Delphi例程]HALCON HSerializedItem procedure TForm1.FormShow(Sender: TObject);var img, im ...

  9. sqlite的事务和锁,很透彻的讲解 【转】

    原文:sqlite的事务和锁 http://3y.uu456.com/bp-877d38906bec097sf46se240-1.html 事务 事务定义了一组SQL命令的边界,这组命令或者作为一个整 ...

  10. 根据源Excel文件,新建Excel文件

    /** * 描述:根据源Excel文件,创建新的Excel文件 * @param excelFile * @throws CheckException */public static void cre ...