URAL 1664

这个题目中间有一大段是用来迷惑的,其实源点就是1,汇点就是N。

最后输出的时候注意流量要从A流到B即可,并且每条边要顺序输出。

#include<stdio.h>#include<string.h>#define INF 0x7FFFFFFF#define MAXD 10010#define MAXM 10000010int first[MAXD], next[MAXM], u[MAXM], v[MAXM], N, M, e;long long int cap[MAXM], flow[MAXM];int S, T, work[MAXD], d[MAXD], q[MAXD], s[MAXD];void add(int a, int b, int w){    u[e] = a;    v[e] = b;    cap[e] = flow[e] = w;    next[e] = first[a];    first[a] = e;    e ++;}int init(){int i, minx, maxx, x, y, a, b, w;if(scanf("%d", &N) != 1)return 0;    minx = INF;    maxx = 0;for(i = 1; i <= N; i ++)        scanf("%d%d", &x, &y);    S = 1;    T = N;    scanf("%d", &M);    memset(first, -1, sizeof(first));    e = 0;for(i = 0; i < M; i ++)    {        scanf("%d%d%d", &a, &b, &w);        add(a, b, w);        add(b, a, w);    }return 1;}int bfs(){int i, j, rear;    memset(d, -1, sizeof(d));    rear = 0;    d[S] = 0;    q[rear ++] = S;for(i = 0; i < rear; i ++)for(j = first[q[i]]; j != -1; j = next[j])if(flow[j] && d[v[j]] == -1)            {                d[v[j]] = d[q[i]] + 1;if(v[j] == T)return 1;                q[rear ++] = v[j];            }return 0;}int dinic(){int cur, res = 0, r;while(bfs())    {        memcpy(work, first, sizeof(first));        r = 0;        cur = S;for(;;)        {if(cur == T)            {int minr = 0, a = INF;for(int i = 0; i < r; i ++)if(flow[s[i]] < a)                    {                        a = flow[s[i]];                        minr = i;                    }for(int i = 0; i < r; i ++)                {                    flow[s[i]] -= a;                    flow[s[i] ^ 1] += a;                }                r = minr;                cur = u[s[r]];                res += a;            }int i;for(i = work[cur]; i != -1; i = next[i])            {if(flow[i] == 0)continue;if(d[cur] + 1 == d[v[i]])break;            }            work[cur] = i;if(i != -1)            {                s[r ++] = i;                cur = v[i];            }else            {                d[cur] = -1;if(r == 0)break;                r --;                cur = u[s[r]];            }        }    }return res;}void printresult(){int i;for(i = 0; i < 2 * M; i += 2)    {if(flow[i] > cap[i])            printf("%d %d %I64d\n", u[i ^ 1], v[i ^ 1], cap[i ^ 1] - flow[i ^ 1]);else            printf("%d %d %I64d\n", u[i], v[i], cap[i] - flow[i]);    }}int main(){while(init())    {long long int res = dinic();        printf("%I64d\n", res);        printresult();    }return 0;}

URAL 1664 Pipeline Transportation相关推荐

  1. NLP-文本摘要:利用预训练模型进行文本摘要任务【transformers:pipeline、T5、BART、Pegasus】

    一.pipeline 可以使用pipeline快速实现文本摘要 from transformers import pipelinesummarizer = pipeline(task="su ...

  2. Redis 笔记(15)— 管道 pipeline(客户端将批量命令打包发送用来节省网络开销)

    Redis 是一种基于客户端-服务端模型以及请求/响应协议的 TCP 服务.这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听 Socket 返回,通常是以阻塞模式,等 ...

  3. GPU上创建目标检测Pipeline管道

    GPU上创建目标检测Pipeline管道 Creating an Object Detection Pipeline for GPUs 今年3月早些时候,展示了retinanet示例,这是一个开源示例 ...

  4. Python:Item Pipeline

    当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline都是实现了简单方法的Pyth ...

  5. pipeline和java的区别_总结:四个Pipeline脚本式与声明式语法差异

    如果您阅读此博客文章,则很有可能正在寻找有关脚本化和声明性管道之间的实际差异的信息,对吗?那你找不到更好的地方了.我将向您展示这两者之间的四个最实际的区别.和我待几分钟,享受旅程! 为什么要有两种管道 ...

  6. jenkins pipeline脚本_Jenkins 创建流水线 (Pipeline) 项目的脚本

    前一段时间在做接口测试自动化方面的工作.现在整理下,接口测试国中学到的知识,做到边学边用到实践了.下面,介绍下,把接口测试项目集成到Jenkins,建立PIpeline项目. Pipeline 是一套 ...

  7. 重磅!全球首个可视化联邦学习产品与联邦pipeline生产服务上线

    [导读]作为全球首个联邦学习工业级技术框架,FATE支持联邦学习架构体系与各种机器学习算法的安全计算,实现了基于同态加密和多方计算(MPC)的安全计算协议,能够帮助多个组织机构在符合数据安全和政府法规 ...

  8. 高速流水线,Jenkins Shared Pipeline

    前言 不知道你的 team 当中是否采用敏捷开发,总之我们的 team 贯彻敏捷方法很彻底 随着敏捷方法的步伐加快,如何加快软件的交付速度变得极为重要,快速交付离不开 DevOps,而 DevOps ...

  9. 用上Pytorch Lightning的这六招,深度学习pipeline提速10倍!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 面对数以 ...

最新文章

  1. 阿里工程师力荐的计算机网络和算法资料,限时下载!
  2. 要做linux运维工程师的朋友,必须要掌握以下几个工具才行
  3. ubuntu php fpm.conf,ubuntu下nginx+PHP-FPM安装配置
  4. python程序结构有哪几种_Python数据结构与算法(几种排序)小结
  5. StackExchange.Redis学习笔记(五) 发布和订阅
  6. SmartGit使用教程
  7. java null转换jason_常见java问题及解决办法汇总(干货可收藏)
  8. 高考python必考题目_假如高考考python编程,这些题目你会几个呢?
  9. 京东sdk调用实例_Apache ShardingSphere(Incubating)对接京东白条实战
  10. linux安装之后缺少命令,CentOS7安装成功后缺少命令的解决办法
  11. [shell]shell 中| || () {} 用法以及shell的逻辑与或非
  12. JavaScript怎样读取本地Excel文件
  13. Oligo 7 引物设计 安装
  14. sis地址发布器_【一起练翻译-9.1】关于提词器、真实、川普和演讲
  15. 计算机指法标准,标准盲打指法练习
  16. 六大常用软件设计模式—代理模式
  17. MT【217】韦达定理应用
  18. 小伙伴要我给他介绍一些非常酷炫而有趣又容易上手的前端框架
  19. 手把手教你做游戏外挂
  20. 证券行业的数字化转型:数字新基建 (云、中台、数字化解决方案)

热门文章

  1. 很遗憾AI还不能审查出儿童性侵录像:沙漠也被当成小黄片
  2. 加州无人车路测新添Lyft,中国公司Roadstar和长安也要去跑一跑
  3. digiKam 6.1.0 发布,相片管理工具
  4. spring cloud gateway 之限流篇
  5. K8s集群部署(四)------ Flannel网络部署
  6. ActiveMQ消息重发
  7. 使用ExposedObject对Asp.net MVC中匿名类型的JsonResult做单元测试
  8. 存储高手速成:推荐10个存储技术网站和论坛
  9. 03、三种简单的计时器
  10. linux下DHCP服务器设置——让自己的智能手机上自己的wifi网络