poj 2135 Farm Tour【 最小费用最大流 】
第一道费用流的题目---
其实---还是不是很懂,只知道沿着最短路找增广路
建图
源点到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【 最小费用最大流 】的更多相关文章
- poj 2135 Farm Tour 最小费用最大流建图跑最短路
题目链接 题意:无向图有N(N <= 1000)个节点,M(M <= 10000)条边:从节点1走到节点N再从N走回来,图中不能走同一条边,且图中可能出现重边,问最短距离之和为多少? 思路 ...
- POJ 2135 Farm Tour [最小费用最大流]
题意: 有n个点和m条边,让你从1出发到n再从n回到1,不要求所有点都要经过,但是每条边只能走一次.边是无向边. 问最短的行走距离多少. 一开始看这题还没搞费用流,后来搞了搞再回来看,想了想建图不是很 ...
- poj 2351 Farm Tour (最小费用最大流)
Farm Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17230 Accepted: 6647 Descri ...
- [poj] 1235 Farm Tour || 最小费用最大流
原题 费用流板子题. 费用流与最大流的区别就是把bfs改为spfa,dfs时把按deep搜索改成按最短路搜索即可 #include<cstdio> #include<queue> ...
- POJ2135 Farm Tour —— 最小费用最大流
题目链接:http://poj.org/problem?id=2135 Farm Tour Time Limit: 1000MS Memory Limit: 65536K Total Submis ...
- 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 ...
- Farm Tour(最小费用最大流模板)
Farm Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18150 Accepted: 7023 Descri ...
- POJ 2135 Farm Tour (费用流)
[题目链接] http://poj.org/problem?id=2135 [题目大意] 有一张无向图,求从1到n然后又回来的最短路 同一条路只能走一次 [题解] 题目等价于求从1到n的两条路,使得两 ...
- poj 2135 Farm Tour 最小费最大流
inf开太小错了好久--下次还是要用0x7fffffff #include<stdio.h> #include<string.h> #include<vector> ...
- POJ 2135 Farm Tour (网络流,最小费用最大流)
POJ 2135 Farm Tour (网络流,最小费用最大流) Description When FJ's friends visit him on the farm, he likes to sh ...
随机推荐
- 基于Nginx的SSL虚拟主机
通过私钥,证书对站点www.test.com的所有数据加密,实现通过https访问www.test.com 环境说明: 源码安装Nginx时必须使用--with-http_ssl_module参数,启 ...
- 企业级任务调度框架Quartz(2)-下载和安装Quartz
1.下载和安装 Quartz 根据资料上提供的网址http://www.opensymphony.com/quartz 我们可以下载到Quartz的最新版本1.6.4: 2.下载后包的说明 ...
- js中时间戳与日期时间之间的相互转换
1.时间戳转换为标准日期时间格式: function timeFormat(dateStr) { var date = new Date(dateStr); Y = date.getFullYear( ...
- Substring Uva 11468_记忆化搜索 + AC自动机
Code: #include<cstdio> #include<cstring> #include<queue> using namespace std; cons ...
- python与图灵机器人交互(ITCHAT版本)
#!/usr/bin/env python#-*- coding:utf-8 -*- @Author : wujf @Time:2018/9/5 17:42import requestsimport ...
- 【XSY3347】串后缀
原题:2018 ICPC Asia-East Continent Final J 想看原题解的可以去看吉老师的直播题解 题意: 题解: (dllca膜你赛搬原题差评) 考虑题目中给出的式子的含义,实际 ...
- js中浏览器兼容startsWith 、endsWith 函数
在做js开发的时候用到了startsWith函数时,发现各个浏览器不兼容问题,因为对开发来说,chrome浏览器最好用,就一直在chrome浏览器中使用这两个函数没有任何问题,但在ie浏览器访问就直接 ...
- Ajax技术实战操练课堂学习笔记
ajax是什么 ? ajax(asynchronouse javascript and xml) 异步的javascript 和 xml 是7种技术的综合,它包含了七个技术( javascript x ...
- Project Euler 21 Distinct primes factors( 整数因子和 )
题意: 记d(n)为n的所有真因数(小于n且整除n的正整数)之和. 如果d(a) = b且d(b) = a,且a ≠ b,那么a和b构成一个亲和数对,a和b被称为亲和数. 例如,220的真因数包括1. ...
- Project Euler 14 Longest Collatz sequence
题意:对于任意一个数 N ,寻找在 100,0000 之内按照规则( N 为奇数 N = N * 3 + 1 ,N 为偶数 N = N / 2 ,直到 N = 1 时的步数 )步数的最大值 思路:记忆 ...