注意这个题要求每个点也只经过一次,所以直接复制点就行了

其他的都和普通费用流一样了

码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int tot=-1,xia[405],zhong[100005],v[100005],c[100005],x,y,z,ans1,ans2,hou[100004],i,j,n,m,d[505],s,t,qj[505];
bool vis[405];
void jian(int a,int b,int C,int d)
{++tot,hou[tot]=xia[a],xia[a]=tot,zhong[tot]=b,v[tot]=C,c[tot]=d;
}
queue<int>q;
void jia(int a,int b,int c,int d)
{
jian(a,b,c,d);
jian(b,a,0,-d);
}
bool spfa()
{for(i=1;i<=2*n;i++)d[i]=999999999;q.push(s);d[s]=0;while(!q.empty()){int st=q.front();vis[st]=0;q.pop();for(i=xia[st];i!=-1;i=hou[i]){if(v[i]==0)continue;int nd=zhong[i];if(d[nd]>d[st]+c[i]){d[nd]=d[st]+c[i];qj[nd]=i;if(vis[nd]==0){vis[nd]=1;q.push(nd);                }              }}}qj[s]=-1;
if(d[t]==999999999)return 0;  int o=qj[t];while(o!=-1){v[o]--;v[o^1]++;o=qj[zhong[o^1]];}ans2+=d[t];ans1++;return 1;
}
void mcmf()
{while(spfa());
}
int main()
{memset(xia,-1,sizeof(xia));scanf("%d%d",&n,&m);s=1+n;t=n;for(i=2;i<n;i++)jia(i,i+n,1,0);for(i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&z);jia(x+n,y,1,z);       }mcmf();    printf("%d %d",ans1,ans2);
}

bzoj1877 [SDOI2009]晨跑 费用流相关推荐

  1. P2153 晨跑,费用流裸题

    晨跑 题目连接 https://www.luogu.org/problemnew/show/P2153 题解 求最大不相交路径数,并在路径数最大前提下,求总路程最短. 太裸了. 求不相交路径数:将除1 ...

  2. 【BZOJ 1877】 [SDOI2009]晨跑(费用流)

    题目描述 Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街 ...

  3. BZOJ1877:[SDOI2009]晨跑——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1877 https://www.luogu.org/problemnew/show/P2153 Ela ...

  4. 洛谷 [SDOI2009]晨跑

    题目描述 Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街 ...

  5. bzoj 1877: [SDOI2009]晨跑 (网络流)

    明显拆点费用流: typearr=recordtoward,next,cap,cost:longint;end;constmm=1<<30;maxn=1000;maxm=300000;va ...

  6. [SDOI2009]晨跑

    题目链接 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 inline ll rea ...

  7. BZOJ 1061费用流

    思路: 我们可以列出几个不等式 用y0带进去变成等式 下-上 可以消好多东西 我们发现 等式左边的加起来=0 可以把每个方程看成一个点 正->负 连边 跑费用流即可 //By SiriusRen ...

  8. POJ 2135 简单费用流

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

  9. hdu4067 费用流(混合欧拉的宽展和延伸)

    题意:        给以一个图,每个有向边都有两个权值,a,b其中a是保留这条边的花费,b是删除这条边的花费,让你删去一些边使图满足一下要求: (1)只有一个起点和一个终点 (2)所有的边都是又向的 ...

最新文章

  1. HTTP/TCP/IP协议
  2. 向app store提交应用时,必须点“ready to upload binary”!
  3. servlet解决javascript传来中文乱码问题
  4. [Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸
  5. python规模_python语言计算生态规模有多大?
  6. 随机生成1024个数,存入一段内存,用指针实现获取1024个数的最大数地址,最小数地址
  7. 【牛客 - 368B】选点(dfs序,LIS 或 dfs序 + 树状数组 + 离散化,树状数组求LIS的方法)
  8. Linux编程 文件操作,linux高级编程(文件操作)
  9. linux ip addr peer,CentOS 7 设置网络IP地址
  10. php怎么求最小公倍数,C++_详解C语言求两个数的最大公约数及最小公倍数的方法,求两个正整数的最大公约数nbs - phpStudy...
  11. 如何在.NET控制台应用程序中获取应用程序的路径?
  12. 自来水公司SCADA调度系统方案
  13. 基于Springboot+Vue实现前后端分离进销存管理系统
  14. word鼠标右下角有一个小方块_word
  15. Qt QLineedit 控件出发clicked信号问题
  16. killall: command not found
  17. 广西来宾中考计算机考试考什么,来宾中考信息管理系统 http://www.lbzklq.com
  18. python获取阿里巴巴国际站商家信息
  19. 计算机英语论文1000,1000字的英语论文范文大全
  20. 题目0063-射击比赛

热门文章

  1. LaTeX中巨算符下面输入两行内容的方法
  2. 深度学习标注工具LabelImg的使用方法
  3. Liang-Barsky算法
  4. 怎么写论文?写好论文的方法
  5. 再谈注意力机制 | 运用强化学习实现目标特征提取
  6. 堆排序 Heap Sort
  7. 例子---PHP与Form表单之二
  8. 给定一个整数数组,判断是否存在重复元素。
  9. uclinux 嵌入式linux,嵌入式操作系统uCLinux
  10. python面向对象程序设计实训学生自我总结_Python面向对象程序设计示例小结