bzoj1877 晨跑(费用流)
1877: [SDOI2009]晨跑
Time Limit: 4 Sec Memory Limit: 64 MB
Submit: 2138 Solved: 1145
Description
Input
Output
Sample Input
1 2 1
1 3 1
2 4 1
3 4 1
4 5 1
4 6 1
2 5 5
3 6 6
5 7 1
6 7 1
Sample Output
HINT
对于30%的数据,N ≤ 20,M ≤ 120。
对于100%的数据,N ≤ 200,M ≤ 20000。
Source
/*
最小费用流=最大流(Dinic)-BFS+SPFA
模板,因为每个点只能走一次
所以流量赋为1,注意起点终点不算十字路口
所以重建原点汇点 。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#define maxn 5010
#define inf 0x3f3f3f3f using namespace std;
int head[maxn],vis[maxn],pre[maxn],dis[maxn];
int n,m,ans,cnt,num=,x,y,z,S,T;
queue<int>q;
struct node
{
int u,v,flow,sum,next;
}e[maxn*]; inline int init()
{
int x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} inline void add(int u,int v,int flow,int dis)
{
e[++num].v=v;
e[num].flow=flow;
e[num].sum=dis;
e[num].next=head[u];
head[u]=num; e[++num].v=u;
e[num].flow=;
e[num].sum=-dis;
e[num].next=head[v];
head[v]=num;
} bool spfa()
{
for(int i=;i<=T;i++) dis[i]=inf;
q.push(S);vis[S]=;dis[S]=;
while(!q.empty())
{
int now=q.front();q.pop();vis[now]=;//vis忘了置0......
for(int i=head[now];i;i=e[i].next)
{
int v=e[i].v;
if(dis[v]>dis[now]+e[i].sum&&e[i].flow)
{
dis[v]=dis[now]+e[i].sum;
pre[v]=i;
if(!vis[v])
{
vis[v]=;
q.push(v);
}
}
}
}
return dis[T]!=inf;
} int dfs()
{
int tmp=T;
while(tmp!=S)//从终点一直不断往前找
{
int now=pre[tmp],v=e[now].v;
e[now].flow--;e[now^].flow++;
tmp=e[now^].v;
}
ans+=dis[T];
} int main()
{
n=init();m=init();
S=,T=n*+;
add(S,,inf,);add(n*,T,inf,);
for(int i=;i<n;i++)add(i,i+n,,);
add(,+n,inf,);add(n,n+n,inf,);
for(int i=;i<=m;i++)
{
x=init();y=init();z=init();
add(x+n,y,,z);
}
while(spfa())
{
cnt++;dfs();
}
printf("%d %d\n",cnt,ans);
return ;
}
bzoj1877 晨跑(费用流)的更多相关文章
- [SDOI2009][bzoj1877] 晨跑 [费用流]
题面: 传送门 思路: 一个点只能走一回,路径不能相交...... 显然可以转化为网络流的决策来做 我们构建一个网络,令其最大流等于最大的跑步天数即可 怎么构造呢? 对于每个点只能走一次的限制,可以考 ...
- 【bzoj1877】[SDOI2009]晨跑 费用流
题目描述 Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街 ...
- BZOJ 1877: [SDOI2009]晨跑 费用流
1877: [SDOI2009]晨跑 Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一 ...
- B1877 [SDOI2009]晨跑 费用流
其实之前写过一个板子,但是一点印象都没有,所以今天重写了一下,顺便把这个题当成板子就行了. 其实费用流就是把bfs换成spfa,但是中间有一个原则,就是费用优先,在费用(就是c)上跑spfa,顺便求出 ...
- BZOJ-1877 晨跑 最小费用最大流+拆点
其实我是不想做这种水题的QWQ,没办法,剧情需要 1877: [SDOI2009]晨跑 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 1704 Solve ...
- bzoj1877 晨跑
Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他 坚持下来的只有晨跑. 现在给出一张学校附近的地图,这张地图中包含N个 ...
- 【BZOJ1877】[SDOI2009]晨跑 最小费用最大流
[BZOJ1877][SDOI2009]晨跑 Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现 ...
- HDU4807 Lunch Time(费用流变种)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=4807 Description The campus of Nanjing Universit ...
- bzoj4514: [Sdoi2016]数字配对--费用流
看了一眼题目&数据范围,觉得应该是带下界的费用流 原来想拆点变成二分图,能配对的连边,跑二分图,可行性未知 后来看到另外一种解法.. 符合匹配要求的数要满足:质因子的个数相差为1,且两者可整除 ...
随机推荐
- 移动端开发需要加的meta
移动端开发需要加的meta和常用的css3媒体查询样式,移动开发中头部要加的一些常用meta. <meta name="viewport" content="ini ...
- asp.net mvc,基于aop实现的接口访问统计、接口缓存等
其实asp.net 上aop现有的框架应该蛮多的,比如静态注入式的PostSharp(新版本好像已经商业化了,旧版本又不支持.net4.0+),或者通过反射的(性能会降低). 本文则是通过mvc其中一 ...
- sectional data interpolation in Tecplot
$!Varset |NumLoop|= $!Loop |NumLoop| $!Varset |num|=(|Loop|*+) $!RotateData ZoneList = [] Angle = |n ...
- 关于jupyter notebook
直接点击进行跳转阅读:https://zhuanlan.zhihu.com/p/33105153
- 【Codeforces 1009C】Annoying Present
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 其实就是让你最后这n个数字的和最大. 加上的x没有关系.因为肯定都是加上n个x 所以直接加上就可以了 主要在于如何选取j 显然我们要找到一个位 ...
- 【Codeforces 584D】Dima and Lisa
[链接] 我是链接,点我呀:) [题意] 让你把一个奇数n分成最多个质数的和 [题解] 10的9次方以内,任意两个质数之间的差距最大为300 因此可以这样,我们先从i=n-2开始一直递减直到i变成最大 ...
- sdibt 1251 进化树问题
/* 三个点的话 A--D--B | C dis(AD)=(AB+AC-BC)/2; 拓展到到n个点 每次去叶子节点,先去掉与A相连长度最小的. 将他们的长度加起来. */ #include<s ...
- (13)Corner Detection角点检测
import cv2 import numpy as np img=cv2.imread('opencv-corner-detection-sample.jpg') gray = cv2.cvtCol ...
- Linux下汇编语言学习笔记74 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- Linux 使用pwgen命令创建随机密码
https://blog.csdn.net/fdipzone/article/details/73864598 http://www.netkou.com/?post=155