bzoj 3597: [Scoi2014]方伯伯运椰子 [01分数规划 消圈定理 spfa负环]
3597: [Scoi2014]方伯伯运椰子
题意:
from mhy12345
给你一个满流网络,对于每一条边,压缩容量1 需要费用ai,扩展容量1 需要bi,
当前容量上限ci,每单位通过该边花费di,限制网络流量不能改变。调整后必须满
流,设调整了K 次,使得费用减少量为D,最大化D/K
就是给你一个费用流,但不是最小,增广的费用为b+d,退流的费用为a-d
就是正反向增广路
根据消圈定理,流f为mcmf当且仅当无负费用增广圈
01分数规划+spfa求负环即可
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long ll;
#define fir first
#define sec second
const int N = 505, M = 1e4+5, mo = 1e9+7;
inline int read() {
char c=getchar(); int x=0,f=1;
while(c<'0'||c>'9') {if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9') {x=x*10+c-'0';c=getchar();}
return x*f;
}
int n, m;
double l, r;
struct edge {int v, ne; double w;} e[M];
int cnt, h[N];
inline void ins(int u, int v, double w) {
e[++cnt] = (edge) {v, h[u], w}; h[u] = cnt;
}
namespace nc {
int vis[N], T; double d[N];
bool dfs(int u, double mid) {
vis[u] = T;
for(int i=h[u]; i; i=e[i].ne) {
int v = e[i].v; double w = e[i].w + mid;
if(d[v] > d[u] + w) {
d[v] = d[u] + w;
if(vis[v] == T || dfs(v, mid)) return true;
}
}
vis[u] = 0;
return false;
}
bool neg_circle(double mid) {
memset(vis, 0, sizeof(vis));
memset(d, 0, sizeof(d));
for(T=1; T<=n+2; T++) if(dfs(T, mid)) return true;
return false;
}
}
bool check(double mid) {
return nc::neg_circle(mid);
}
int main() {
freopen("in", "r", stdin);
n = read(); m = read();
for(int i=1; i<=m; i++) {
int u = read(), v = read(), a = read(), b = read(), c = read(), d = read();
ins(u, v, b+d); if(c) ins(v, u, a-d);
r += c * d;
}
while(r - l > 1e-3) {
double mid = (l+r)/2.0;
if(check(mid)) l = mid;
else r = mid;
}
printf("%.2lf\n", l);
}
bzoj 3597: [Scoi2014]方伯伯运椰子 [01分数规划 消圈定理 spfa负环]的更多相关文章
- bzoj3597[Scoi2014]方伯伯运椰子 01分数规划+spfa判负环
3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 594 Solved: 360[Submit][Statu ...
- bzoj 3597: [Scoi2014]方伯伯运椰子 0/1分数规划
3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 144 Solved: 78[Submit][Status ...
- bzoj 3597 [Scoi2014] 方伯伯运椰子 - 费用流 - 二分答案
题目传送门 传送门 题目大意 给定一个费用流,每条边有一个初始流量$c_i$和单位流量费用$d_i$,增加一条边的1单位的流量需要花费$b_i$的代价而减少一条边的1单位的流量需要花费$a_i$的代价 ...
- bzoj 3597: [Scoi2014]方伯伯运椰子
Description Input 第一行包含二个整数N,M 接下来M行代表M条边,表示这个交通网络 每行六个整数,表示Ui,Vi,Ai,Bi,Ci,Di 接下来一行包含一条边,表示连接起点的边 Ou ...
- BZOJ3597 SCOI2014方伯伯运椰子(分数规划+spfa)
即在总流量不变的情况下调整每条边的流量.显然先二分答案变为求最小费用.容易想到直接流量清空跑费用流,但复杂度略有些高. 首先需要知道(不知道也行?)一种平时基本不用的求最小费用流的算法——消圈法.算法 ...
- 3597: [Scoi2014]方伯伯运椰子[分数规划]
3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec Memory Limit: 64 MB Submit: 404 Solved: 249 [Submit][Sta ...
- 【BZOJ3597】方伯伯运椰子(分数规划,网络流)
[BZOJ3597]方伯伯运椰子(分数规划,网络流) 题解 给定了一个满流的费用流模型 如果要修改一条边,那么就必须满足流量平衡 也就是会修改一条某两点之间的路径上的所有边 同时还有另外一条路径会进行 ...
- BZOJ 3597 SCOI2014 方伯伯送椰子 网络流分析+SPFA
原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3597 Description 四川的方伯伯为了致富,决定引进海南的椰子树.方伯伯的椰子园十 ...
- [SCOI2014]方伯伯运椰子
嘟嘟嘟 01分数规划思维题. 题中要求交通总量不减少,那么如果总量增加的话,总费用就会增加,所以一定不是更优的解.那么总量守恒. 这是不是就想到了网络流?对于每一个节点流入量等于流出量.然后就是很有思 ...
随机推荐
- UEP-多任务
打开多任务 Function testTabTask(){ openTabTask(","多任务测试",$$pageContextPath+"/componen ...
- [国嵌笔记][026][ARM伪指令]
ARM机器码 1.汇编程序通过汇编器变成机器码,然后才能在ARM处理器上运行 2.ARM机器码是一个32位的数,被分成了多个段,每个段都有各自的含义 3.格式: cond:表示条件(4位) I:表示源 ...
- 浅析Entity Framework Core2.0的日志记录与动态查询条件
前言 Entity Framework Core 2.0更新也已经有一段时间了,园子里也有不少的文章.. 本文主要是浅析一下Entity Framework Core2.0的日志记录与动态查询条件 去 ...
- :nth-child(n)
规定属于其父元素的第二个子元素的每个 p 的背景色: p:nth-child(2) { background:#ff0000; } 1定义和用法 :nth-child(n) 选择器匹配属于其父元素的第 ...
- ssh密码
- 《并行程序设计导论》——MPI(Microsoft MPI)(1):Hello
=================================版权声明================================= 版权声明:原创文章 禁止转载 请通过右侧公告中的“联系邮 ...
- pip install在Windows下报错解决
报错: Traceback (most recent call last): File, in<module> load_entry_point('pip==1.4.1','console ...
- ASP.NET Core 一步步搭建个人网站(6)_单页模式和优化
前言 HI,有段时间没有更新了,主要因为第一年前事情比较多,有些事得忙着张罗下:第二呢,对个人网站进行了一次大范围的优化,主要是申请的云服务器资源有限,1m的网络带宽,带上图片展示的话,打开网站的平均 ...
- ASP.NET MVC5 中百度ueditor富文本编辑器的使用
随着网站信息发布内容越来越多,越来越重视美观,富文本编辑就是不可缺少的了,众多编辑器比较后我选了百度的ueditor富文本编辑器. 百度ueditor富文本编辑器分为两种一种是完全版的ueditor, ...
- python 函数返回多个参数的赋值方法
#定义函数 def Get_Counter_AllMeasureValue(self, inst_dg_address): """ get all measure val ...