第一道费用流的题目---

其实---还是不是很懂,只知道沿着最短路找增广路

建图

源点到1连一条容量为2(因为要来回),费用为0的边

n到汇点连一条容量为2,费用为0的边

另外的就是题目中输入的了

另外这题是无向边-----

maxn 开到1000会re----

存个模板先吧------------------------------------------

 #include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<set>
#include<map>
#include<stack>
#include<vector>
#include<queue>
#include<string>
using namespace std; typedef long long LL;
const int maxn = ;
const int INF = ( << ) - ; int first[maxn],vis[maxn],dis[maxn],pos[maxn],ecnt,size; struct Edge{
int v,next,cap,cost;
} e[*maxn]; void init(){
ecnt = ;
memset(first,-,sizeof(first));
} void add_edge(int u,int v,int cap,int cost){
e[ecnt].v = v;
e[ecnt].cap = cap;
e[ecnt].cost = cost;
e[ecnt].next = first[u];
first[u] = ecnt++; e[ecnt].v = u;
e[ecnt].cap = ;
e[ecnt].cost = -cost;
e[ecnt].next = first[v];
first[v] = ecnt++;
} bool SPFA(int s, int t)
{
int u,v,i;
queue <int> q;
memset(vis,,sizeof(vis));
for(i= ;i <= size;i++) dis[i]=INF; dis[s]=;
vis[s]=;
q.push(s); while(!q.empty()){
u=q.front(); q.pop(); vis[u]=;
for (i = first[u]; ~i;i = e[i].next){
v=e[i].v;
if(e[i].cap > && dis[u]+e[i].cost < dis[v]){
dis[v]=dis[u]+e[i].cost;
pos[v]=i;
if(!vis[v]){
vis[v]=;
q.push(v);
}
}
}
}
return dis[t] != INF;
} LL MCMF(int s,int t)
{
int i;
LL cost=,flow=;
while(SPFA(s,t)){
int d=INF;
for (i = t;i != s;i = e[pos[i]^].v){
d = min(d,e[pos[i]].cap);
}
for(i = t;i != s;i = e[pos[i]^].v){
e[pos[i]].cap -= d;
e[pos[i]^].cap += d;
}
flow += d;
cost += dis[t]*d;
}
return cost;
} int main(){
int n,m;
while(scanf("%d %d",&n,&m) != EOF){
init();
size = n+;
add_edge(,,,); add_edge(,,,);
add_edge(n+,n,,);add_edge(n,n+,,); for(int i = ;i < m;i++){
int u,v,w;
scanf("%d %d %d",&u,&v,&w);
add_edge(u,v,,w);
add_edge(v,u,,w);
}
printf("%I64d\n",MCMF(,n+));
}
return ;
}

poj 2135 Farm Tour【 最小费用最大流 】的更多相关文章

  1. poj 2135 Farm Tour 最小费用最大流建图跑最短路

    题目链接 题意:无向图有N(N <= 1000)个节点,M(M <= 10000)条边:从节点1走到节点N再从N走回来,图中不能走同一条边,且图中可能出现重边,问最短距离之和为多少? 思路 ...

  2. POJ 2135 Farm Tour [最小费用最大流]

    题意: 有n个点和m条边,让你从1出发到n再从n回到1,不要求所有点都要经过,但是每条边只能走一次.边是无向边. 问最短的行走距离多少. 一开始看这题还没搞费用流,后来搞了搞再回来看,想了想建图不是很 ...

  3. poj 2351 Farm Tour (最小费用最大流)

    Farm Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17230   Accepted: 6647 Descri ...

  4. [poj] 1235 Farm Tour || 最小费用最大流

    原题 费用流板子题. 费用流与最大流的区别就是把bfs改为spfa,dfs时把按deep搜索改成按最短路搜索即可 #include<cstdio> #include<queue> ...

  5. POJ2135 Farm Tour —— 最小费用最大流

    题目链接:http://poj.org/problem?id=2135 Farm Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submis ...

  6. TZOJ 1513 Farm Tour(最小费用最大流)

    描述 When FJ's friends visit him on the farm, he likes to show them around. His farm comprises N (1 &l ...

  7. Farm Tour(最小费用最大流模板)

    Farm Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18150   Accepted: 7023 Descri ...

  8. POJ 2135 Farm Tour (费用流)

    [题目链接] http://poj.org/problem?id=2135 [题目大意] 有一张无向图,求从1到n然后又回来的最短路 同一条路只能走一次 [题解] 题目等价于求从1到n的两条路,使得两 ...

  9. poj 2135 Farm Tour 最小费最大流

    inf开太小错了好久--下次还是要用0x7fffffff #include<stdio.h> #include<string.h> #include<vector> ...

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

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

随机推荐

  1. 【转】【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)

    原文地址:http://www.cnblogs.com/baiboy/p/orc6.html 阅读目录 目录 介绍 下载软件 操作系统安装 Oracle安装先决条件 创建共享磁盘 参考文献 相关文章 ...

  2. 洛谷P1563 玩具谜题 简单模拟

    没意义,注意方向别判错. Code: #include<cstdio> #include<cstring> using namespace std; const int max ...

  3. java.util.Date日期类通过java语句转换成Sql(这里测试用的是oracle)语句可直接插入(如:insert into)的日期类型

    public void add(Emp emp) throws Exception{ QueryRunner runner = new QueryRunner(JdbcUtil.getDataSour ...

  4. 训练1-A

    一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input 输入中含有一些数据,分别是成对出现的花布条和 ...

  5. spring实现定时任务的两种方式之spring @scheduled注解方式

    1.使用spring的 scheduled使用注解的方式 这种方法的好处是:使用方便,配置少,提高开发效率: 缺点是:如果使用服务器集群部署方式的时候,其自身无法解决定时任务重复执行的问题. 2.首先 ...

  6. redis各数据类型应用概述

    前言 redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存.亦可持久化的日志型.key-value数据库,并提供多种语言的API. 它是内存存储的数据结构服务器,可用作数据库.高速缓存 ...

  7. yii 正则验证

    required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...

  8. 开启WIFI

    C:\Windows\system32>netsh wlan set hostednetwork mode=allow ssid=wuyechun-wifi k ey= 承载网络模式已设置为允许 ...

  9. @responsebody注解的作用就是让viewresolver不起作用,不返回视图名称而是直接返回的return object

    @responsebody注解的作用就是让viewresolver不起作用,不返回视图名称而是直接返回的return object 2.也可以再方法上添加@ResponseBody注解, 用于这个类里 ...

  10. muduo库源码剖析(二) 服务端

    一. TcpServer类: 管理所有的TCP客户连接,TcpServer供用户直接使用,生命期由用户直接控制.用户只需设置好相应的回调函数(如消息处理messageCallback)然后TcpSer ...