题目大意:

给定一个n个点m条边的无向图

求从点1去点n再从点n回点1的不重叠(同一条边不能走两次)的最短路

挑战P239

求去和回的两条最短路很难保证不重叠

直接当做是由1去n的两条不重叠的最短路

这样就变成了由1去n流量为2的最小费用流

#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
const int N=;
int n,m;
struct EDGE { int v,w,c,r; };
vector <EDGE> E[N];
void addE(int u,int v,int w,int c) {
E[u].push_back((EDGE){v,w,c,E[v].size()});
E[v].push_back((EDGE){u,,-c,E[u].size()-});
}
int dis[N], pv[N] ,pe[N];
int minCFlow(int s,int t,int f) {
int res=;
while(f>) {
/// Bellman-Ford求s到t最短路
memset(dis,INF,sizeof(dis));
memset(pv,,sizeof(pv));
dis[s]=;
bool upD=;
while(upD) {
upD=;
for(int i=;i<=n;i++) { // 通过i点
if(dis[i]==INF) continue;
for(int j=;j<E[i].size();j++) { // 更新E[i][j]点的最短路
EDGE& e=E[i][j];
if(e.w> && dis[e.v]>dis[i]+e.c) { // 边容量>0才能走
dis[e.v]=dis[i]+e.c; // 找到更短的路 更新
pv[e.v]=i, pe[e.v]=j; // 记录前驱点及边 便于通过e.v找到i点
upD=;
}
}
}
}
if(dis[t]==INF) return -; // s不能到t 不能增广 int d=f; // 找到本轮实际能够流出的流量(即实际用掉的容量)
for(int i=t;pv[i];i=pv[i])
d=min(d,E[pv[i]][pe[i]].w);
f-=d; // 容量消耗
res+=d*dis[t]; // 计算本轮花费
for(int i=t;pv[i];i=pv[i]) {
EDGE& e=E[pv[i]][pe[i]];
e.w-=d;
E[i][e.r].w+=d;
} // 更新边的容量
}
return res;
}
int main()
{
while(~scanf("%d%d",&n,&m)) {
int s=, t=n;
for(int i=;i<m;i++) {
int u,v,c; scanf("%d%d%d",&u,&v,&c);
addE(u,v,,c); addE(v,u,,c);
// 建立u到v容量大小为1费用为c的边
}
printf("%d\n",minCFlow(s,t,));
// 求s到t传输大小为2(即最大容量为2)的最小费用流
} return ;
}

POJ 2135 /// 最小费用流最大流 非负花费 BellmanFord模板的更多相关文章

  1. hdu 6437 /// 最小费用最大流 负花费 SPFA模板

    题目大意: 给定n,m,K,W 表示n个小时 m场电影(分为类型A.B) K个人 若某个人连续看了两场相同类型的电影则失去W 电影时间不能重叠 接下来给定m场电影的 s t w op 表示电影的 开始 ...

  2. POJ - 2135最小费用流

    题目链接:http://poj.org/problem?id=2135 今天学习最小费用流.模板手敲了一遍. 产生了一个新的问题:对于一条无向边,这样修改了正向边容量后,反向边不用管吗? 后来想了想, ...

  3. POJ 2135 简单费用流

    题意:       题意是一个人他要从牧场1走到牧场n然后在走回来,每条路径只走一次,问全程的最短路径是多少. 思路:        这个题目挺简单的吧,首先要保证每条边只能走一次,然后还要要求费用最 ...

  4. poj 2135 (基础费用流)

    题意:从1到n再到1,每条边只能走一次,求最短距离. 建图:每条边只能走一次就是流量是1,添加源点与1相连,容量为2,费用为0,n与汇点相连容量为2,费用为0: 求增广路用SPFA最短路求,, #in ...

  5. POJ 2135 Farm Tour (网络流,最小费用最大流)

    POJ 2135 Farm Tour (网络流,最小费用最大流) Description When FJ's friends visit him on the farm, he likes to sh ...

  6. POJ 2135 Farm Tour (最小费用最大流模板)

    题目大意: 给你一个n个农场,有m条道路,起点是1号农场,终点是n号农场,现在要求从1走到n,再从n走到1,要求不走重复路径,求最短路径长度. 算法讨论: 最小费用最大流.我们可以这样建模:既然要求不 ...

  7. poj 2135 Farm Tour 【无向图最小费用最大流】

    题目:id=2135" target="_blank">poj 2135 Farm Tour 题意:给出一个无向图,问从 1 点到 n 点然后又回到一点总共的最短路 ...

  8. [实变函数]5.2 非负简单函数的 Lebesgue 积分

    1 设        $$\bex        \phi(x)=\sum_{i=1}^j c_i\chi_{E_i}(x),\quad c_i\geq 0,        \eex$$ 其中     ...

  9. [实变函数]5.3 非负可测函数的 Lebesgue 积分

    本节中, 设 $f,g,f_i$ 是可测集 $E$ 上的非负可测函数, $A,B$ 是 $E$ 的可测子集.       1 定义: (1) $f$ 在 $E$ 上的 Lebesgue 积分      ...

随机推荐

  1. QTP - excel操作

    1. 以数据库的形式访问Excel 通常,我们与Excel的交互,是通过创建Excel对象的方式: Set ExcelApp = CreateObject("Excel.Applicatio ...

  2. ArrayList的几种初始化方法

    1.使用Arrays.asList方法 ArrayList<Object> obj = new ArrayList<Object>(Arrays.asList(Object o ...

  3. adb 提示adb server version(31) doesn't match this client(40) 解决办法

    有时候我们用adb工具去连接安卓设备,或者模拟器的时候,会提示adb server version(31) doesn't match this client(40)这样的提示.如图 提示的字面意思就 ...

  4. stdio - 标准输入输出库函数

    SYNOPSIS 总览 #include <stdio.h> FILE *stdin; FILE *stdout; FILE *stderr; DESCRIPTION 描述 标注 I/O ...

  5. Android Studio在Ubuntu下离线安装Gradle

    更新android studio3.0后又要升级gradle了,估计又要很长时间,晚上临走前跟开始更新下载,第二天一早发现又卡了,吐血. 在某CSDN下载gradle-4.1-all.zip,直接手动 ...

  6. codeforces847J Students Initiation 网络流

    题目传送门 题意: 有n个人,m对关系,要求每对关系中,有且仅有一个人给另外一个人送礼物,并且使送出礼物最多的人送的礼物尽可能少.并输出送礼物的方案. 思路:这道题麻烦的是网络流模型的转换(废话). ...

  7. 神奇的Android Studio Template(转)

    转自:http://blog.csdn.net/lmj623565791/article/details/51592043 本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台 ...

  8. 基于React Native的跨三端应用架构实践

    作者|陈子涵 编辑|覃云 “一次编写, 到处运行”(Write once, run anywhere ) 是很多前端团队孜孜以求的目标.实现这个目标,不但能以最快的速度,将应用推广到各个渠道,而且还能 ...

  9. node js实战:带数据库,加密的注册登录表单

    demo 注册效果: 登陆效果:        数据库截图: 数据库操作 db.js //这个模块里面封装了所有对数据库的常用操作 var MongoClient = require('mongodb ...

  10. Laravel groupBy用法

    // 假设model名是News:status启用是1:language选择cn: $data = News::select(array('id', 'title', 'type')) ->wh ...