POJ2135:Farm Tour
题意:给定一个无向图,从1走到n再从n走回1,每个边只能走一遍,求最短路
题解:可以定义一个源点s,和一个汇点t
s和1相连容量为2,费用为0,
t和n相连容量为2,费用为0
然后所用的边的容量都定为1,跑一遍最小费用最大流即可
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<queue>
#include<vector>
#define MAXN 1000+10
#define INF 0x7f7f7f7f
#define ll long long
using namespace std;
struct Edge{
int from,to,cap,flow,cost;
Edge(int u=,int v=,int c=,int f=,int w=){
from=u,to=v,cap=c,flow=f,cost=w;
}
};
int n,m;
vector<Edge> edges;
vector<int> G[MAXN];
int d[MAXN];
int b[MAXN];
int a[MAXN];
int p[MAXN];
void AddEdge(int u,int v,int cap,int cost){
edges.push_back(Edge(u,v,cap,,cost));
edges.push_back(Edge(v,u,,,-cost));
int t=edges.size();
G[u].push_back(t-);
G[v].push_back(t-);
}
int SPFA(int s,int t,int &flow,ll &cost){
memset(d,0x7f,sizeof(d));
memset(b,,sizeof(b)); queue<int> q;
q.push(s);
b[s]=;
d[s]=;
a[s]=INF;
p[s]=; while(!q.empty()){
int x=q.front(); q.pop();
b[x]=;
for(int i=;i<G[x].size();i++){
Edge& e=edges[G[x][i]];
if(e.cap>e.flow&&d[e.to]>d[x]+e.cost){
d[e.to]=d[x]+e.cost;
a[e.to]=min(a[x],e.cap-e.flow);
p[e.to]=G[x][i];
if(!b[e.to]){
b[e.to]=;
q.push(e.to);
}
}
}
}
if(d[t]==INF){
return ;
} flow+=a[t];
cost+=1LL*a[t]*d[t];
for(int x=t;x!=s;x=edges[p[x]].from){
edges[p[x]].flow+=a[t];
edges[p[x]^].flow-=a[t];
}
return ;
}
ll MincostMaxflow(int s,int t){
int flow=;
ll cost=;
while(SPFA(s,t,flow,cost));
return cost;
}
void solve(){
printf("%lld\n",MincostMaxflow(,n+));
}
void init(){
memset(a,,sizeof(a));
memset(p,,sizeof(p));
edges.clear();
for(int i=;i<=n;i++){
G[i].clear();
}
for(int i=;i<=m;i++){
int u,v,w;scanf("%d%d%d",&u,&v,&w);
u++,v++;
AddEdge(u,v,,w);
AddEdge(v,u,,w);
}
AddEdge(,,,);
AddEdge(n+,n+,,);
}
int main()
{
while(~scanf("%d%d",&n,&m)){
init();
solve();
}
return ;
}
POJ2135:Farm Tour的更多相关文章
- POJ2135:Farm Tour——题解
http://poj.org/problem?id=2135 题目大意: 从1到n再回来,每条边只能走一次,问最短路. —————————————————— 如果不告诉我是费用流打死不会想这个…… 我 ...
- POJ2135 Farm Tour —— 最小费用最大流
题目链接:http://poj.org/problem?id=2135 Farm Tour Time Limit: 1000MS Memory Limit: 65536K Total Submis ...
- POJ2135 Farm Tour
Farm Tour Time Limit: 2MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Description ...
- 网络流(最小费用最大流):POJ 2135 Farm Tour
Farm Tour Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: ...
- POJ 2135 Farm Tour (网络流,最小费用最大流)
POJ 2135 Farm Tour (网络流,最小费用最大流) Description When FJ's friends visit him on the farm, he likes to sh ...
- POJ Farm Tour
Farm Tour 题目: 约翰有N块地,家在1号,而N号是个仓库.农场内有M条道路(双向的),道路i连接这ai号地和bi号地,长度为ci. 约翰希望依照从家里出发,经过若干地后达到仓库.然后再返回家 ...
- Farm Tour(最小费用最大流模板)
Farm Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18150 Accepted: 7023 Descri ...
- poj 2351 Farm Tour (最小费用最大流)
Farm Tour Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17230 Accepted: 6647 Descri ...
- poj 2135 Farm Tour 【无向图最小费用最大流】
题目:id=2135" target="_blank">poj 2135 Farm Tour 题意:给出一个无向图,问从 1 点到 n 点然后又回到一点总共的最短路 ...
随机推荐
- scrapy 博客爬取
item.py import scrapy class FulongpjtItem(scrapy.Item): # define the fields for your item here like: ...
- 一个轻量级iOS安全框架:SSKeyChain
摘要 SSKeyChains对苹果安全框架API进行了简单封装,支持对存储在钥匙串中密码.账户进行访问,包括读取.删除和设置.SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsof ...
- 《高级软件测试》云平台Jira的配置
首先点击进入以下网址: https://www.atlassian.com/ondemand/signup/form?product=jira-software.ondemand 填写好信息,Star ...
- 读取.properties的内容1
属性文件方便于项目进行更改,在项目开发中用的也是非常的普遍,在这里就把属性文件的读取通过代码进行一个小结: package com.oyy.test; import java.io.BufferedI ...
- volt问题
1./表示当前目录:/college/detail/{{ item.sid }}表示这个路径超链接,url实在不好写就不写,作为开发人员想怎么弄就怎么弄最后发布是项目主管的事 2.不需要服务器给值,直 ...
- CentOS 7 Redis安装配置
1.获取Redis压缩包: wget http:.tar.gz 2.解压测试: mv 到 /usr/local/ tar .tar cd redis 3.使用make测试编译: make 这里可能会出 ...
- EasyUI datagrid 使用小结
用了 EasyUI 框架一段时间了,这个前端框架用起来还是挺方便的,也有很多现成的控件,看看官方文档应该还是能比较快用起来的. 在这里记录一下一些常用的控件的方法,遇到过的bug或者当初耗了一点时间来 ...
- ( 转 ) CORS 有一次 OPTIONS 请求的原理
刚接触前端的时候,以为HTTP的Request Method只有GET与POST两种,后来才了解到,原来还有HEAD.PUT.DELETE.OPTIONS-- 目前的工作中,HEAD.PUT.DELE ...
- AJAX使用说明书
AJAX简介 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异 ...
- hadoop2.6.0理论:hdfs、yarn、mapreduce的架构
HDFS2的架构:负责数据的分布式存储 主从结构 主节点,可以有2个: namenode 从节点,有很多个: datanode namenode负责: 接收用户操作请求,是用户操作的入口 维护文件系统 ...