首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
洛谷3163 CQOI2014危桥 (最大流)
】的更多相关文章
洛谷3163 CQOI2014危桥 (最大流)
一开始想了一发费用流做法然后直接出负环了 首先,比较显然的思路就是对于原图中没有限制的边,对应的流量就是\(inf\),如果是危桥,那么流量就应该是\(2\). 由于存在两个起始点,我们考虑直接\(s->a_1,s->b_1\) 然后对于终点,\(a_2->t,b_2->t\) 流量分别是次数的两倍! (因为往返相当于跑双倍的单程) 然后跑最大流,看一下流量是不是\((2\times (a_n+b_n))\) 但是这样会存在一个瑕疵.就是跑出来的路径是\(a_1->b_2\)…
BZOJ 3504: [Cqoi2014]危桥 [最大流]
3504: [Cqoi2014]危桥 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1407 Solved: 703[Submit][Status][Discuss] Description Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多只能通行两次.Alice希望在岛屿al和a2之间往返an次(从al到a2再从a2到…
BZOJ.3504.[CQOI2014]危桥(最大流ISAP)
BZOJ 洛谷 这种题大多是多源多汇跑网络流.往返\(a_n/b_n\)次可以看做去\(a_n/b_n\)次,直接把危桥能走的次数看做\(1\). 先不考虑别的,直接按原图建模:危桥建双向边容量为\(1\),普通桥容量为\(INF\):然后源点\(S\)向\(a_1,b_1\)分别连容量\(a_n,b_n\)的边,\(a_2,b_2\)分别向汇点\(T\)连容量\(a_n/b_n\)的边. 这样跑出来的最大流会有两个问题: 一是,\(b_2\to T\)的\(b_n\)的一部分流量可能是来自\(…
bzoj3504: [Cqoi2014]危桥--最大流
题目大意:给张无向图,有两个人a,b分别从各自的起点走向各自的终点,走A,B个来回,图里有些边只能走两次,求问是否能满足a,b的需求 按照题目给的表建图 S连a1,b1 a2,b2连T 跑最大流看是否满流 为了防止a1跑到b2的情况 第二遍 S连a1,b2 a2,b1连T 若还是满流说明没问题 #include<stdio.h> #include<string.h> #include<algorithm> #include<queue> #define IN…
Luogu3163 [CQOI2014]危桥 ---- 网络流 及 一个细节的解释
Luogu3163 [CQOI2014]危桥 题意 有$n$个点和$m$条边,有些边可以无限次数的走,有些边这辈子只能走两次,给定两个起点和终点$a_1 --> a_2$(起点 --> 终点)和$b_1 --> b_2$(起点 --> 终点),询问是否可以让$a_1 --> a_2$往返$a_n$次,让$b_1 --> b_2$往返$b_n$次 题解 思路 思路还是比较好想的,就是原图连双向边,然后炒鸡源汇连$a_n*2$和$b_n*2$判断满流是否为$(a_n+b_n…
3504: [Cqoi2014]危桥
3504: [Cqoi2014]危桥 链接 分析: 首先往返的可以转化为全是“往”,那么只要将容量除以2即可. 然后S向a1连边容量为an(除以2之前为2*an),S向a2连边容量为an,b1,b2向T连边容量为bn.原图上的边,建双向边保存. 这样会存在从a1流向b2的流量,当然也有b1流向a2的流量,考虑如何判断这种情况. 将b1,b2交换,然后重新跑一遍,判断是否满流即可. 第一遍最大流的时候,假设a1->b2流了x的流量,那么有 a1->a2:an-x, a1->b2:x, b1…
bzoj千题计划137:bzoj [CQOI2014]危桥
http://www.lydsy.com/JudgeOnline/problem.php?id=3504 往返n遍,即单向2*n遍 危桥流量为2,普通桥流量为inf 原图跑一遍最大流 交换b1,b2再跑一遍最大流 如果两次的结果都等于(an+bn)*2 则可以 证明参见http://www.cnblogs.com/chenyushuo/p/5139556.html #include<queue> #include<cstdio> #include<cstring> #i…
[洛谷P3376题解]网络流(最大流)的实现算法讲解与代码
[洛谷P3376题解]网络流(最大流)的实现算法讲解与代码 更坏的阅读体验 定义 对于给定的一个网络,有向图中每个的边权表示可以通过的最大流量.假设出发点S水流无限大,求水流到终点T后的最大流量. 起点我们一般称为源点,终点一般称为汇点 内容前置 1.增广路 在一个网络从源点S到汇点T的一条各边剩余流量都大于0(还能让水流通过,没有堵住)的一条路. 2.分层 预处理出源点到每个点的距离(每次寻找增广路都要,因为以前原本能走的路可能因为水灌满了,导致不能走了).作用是保证只往更远的地方放水…
AC日记——[CQOI2014]危桥 洛谷 P3163
题目描述 Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多只能通行两次.Alice希望在岛屿al和a2之间往返an次(从al到a2再从a2到al算一次往返).同时,Bob希望在岛屿bl和b2之间往返bn次.这个过程中,所有危桥最多通行两次,其余的桥可以无限次通行.请问Alice和Bob能完成他们的愿望吗? 输入输出格式 输入格式: 本题有多组测试数据.每组数据第一行包含7…
BZOJ3504 CQOI2014危桥(最大流)
如果只有一个人的话很容易想到最大流,正常桥连限流inf双向边,危桥连限流2双向边即可.现在有两个人,容易想到给两起点建超源两汇点建超汇,但这样没法保证两个人各自到达自己要去的目的地.于是再超源连一个人的起点和另一个人的终点跑一遍,两次都满流说明有解.证明脑(bu)补(hui). #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring&g…