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

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

建图

源点到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. Pycharm 设置

    1:显示行号 打上对勾OK 2:设置作者 & 文件编码 3:选择切换Python的版本

  2. vc++元文件的保存,保存图形,重绘图形

    1, CMateFileDC 可以用来多次打开自己的画布,这个元文件包含许多接口的命令 当绘制好之后可以用来播放元文件 首先,创建一个CMateFileDC的元文件对象 然后调用Create原函数,创 ...

  3. day26 hashlib, logging

    目录 hashlib hmac uuid logging v1 v2 v3 看了这个,上面的当作没看过 hashlib 为了防止密码在传输过程被抓取 对字符进行加密,相当于是一个自定义的字符编码表 原 ...

  4. tsar源码分析

    从modules/mod_cpu.c入手 ./devel/tsar.h module 结构体: struct module { char name[LEN_32]; char opt_line[LEN ...

  5. 修改默认input(file)的样式

    以上是默认的 <input type="file" > 但是丑爆了啊同志们~~长久以来都是调用大神的代码,今天我也小试牛刀,做出了如下效果: 这样还是能接受的样子啦~ ...

  6. POJ 1258 Agri-Net( 裸最小生成树 )

    链接:传送门! 题意:一个裸最小生成树,采用Kruskal. /******************************************************************** ...

  7. select Option(增加,删除,清空)

    jQuery获取Select选择的Text和Value: $("#select_id").change(function(){//code...}); //为Select添加事件, ...

  8. XML文件基础

      https://c3d.club/xml/basic/2018/12/27/xml-file-base.html 1.文件头 XML文件头有XML声明与DTD文件类型声明组成.其中DTD文件类型声 ...

  9. 【Codeforces 276C】Little Girl and Maximum Sum

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 最后的和. 其实可以看成是 ∑bi*ai 的形式. 这里的bi这个系数表示的是有多少个区间覆盖了ai这个元素. 既然这样的话. 那么 ...

  10. js里写html代码 啥时候要用“\"转义

    当去掉\的时候 字体变黑 需要加\