BZOJ 1266: [AHOI2006]上学路线route
题目描述
输入
输出
样例输入
样例输出
提示
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<vector>
using namespace std;
const int M=;
int gi()
{
int str=;char ch=getchar();
while(ch>'' || ch<'')ch=getchar();
while(ch>='' && ch<='')str=str*+ch-'',ch=getchar();
return str;
}
const int N=;
const int INF=;
int n,m;int q[M*];
struct Lin
{
int next,to,dis,ct;
}a[M*];
bool vis[N];int f[N][];
int num=;int head[N];
void init(int x,int y,int z,int ff)
{
a[++num].next=head[x];
a[num].to=y;
a[num].dis=z;
a[num].ct=ff;
head[x]=num;
}
void spfa(bool t,int sta)
{
int sum=,tail=;
vis[sta]=;
q[]=sta;
int x,u;
for(int i=;i<=n;i++)vis[i]=,f[i][t]=INF;
f[sta][t]=;
while(tail!=sum)
{
x=q[++tail];
for(int i=head[x];i;i=a[i].next)
{
u=a[i].to;
if(f[x][t]+a[i].dis<f[u][t])
{
f[u][t]=a[i].dis+f[x][t];
if(!vis[u])
{
q[++sum]=u;
vis[u]=true;
}
}
}
vis[x]=false;
}
}
int flow[N][N];
int dep[N];
bool bfs()
{
memset(dep,,sizeof(dep));
int t=,sum=;
dep[]=;
q[]=;
int x;
while(t!=sum)
{
x=q[++t];
for(int i=;i<=n;i++)
{
if(dep[i] || flow[x][i]<=)continue;
dep[i]=dep[x]+;
q[++sum]=i;
}
}
if(dep[n])
return true;
return false;
} int dfs(int x,int flows)
{
if(x==n || !flows)return flows;
int sum=,tmp;
for(int i=;i<=n;i++)
{
if(flow[x][i]<= || dep[i]!=dep[x]+)continue;
tmp=dfs(i,min(flows,flow[x][i]));
flow[x][i]-=tmp;
flow[i][x]+=tmp;
flows-=tmp;
sum+=tmp;
if(!flows)break;
}
return sum;
}
void work()
{
int cc=,tot=;
while(bfs()){
cc=;cc=dfs(,INF);
while(cc)tot+=cc,cc=dfs(,INF);
}
printf("%d",tot);
}
void build()
{
for(int i=;i<=n;i++){
for(int j=head[i];j;j=a[j].next){
if(f[n][]==f[a[j].to][]+f[i][]+a[j].dis)flow[i][a[j].to]+=a[j].ct;
}
}
}
int main()
{
n=gi();m=gi();
int x,y,z,ss;
for(int i=;i<=m;i++)
{
x=gi();y=gi();z=gi();ss=gi();
init(x,y,z,ss);init(y,x,z,ss);
}
spfa(,);
printf("%d\n",f[n][]);
spfa(,n);
build();
work();
return ;
}
BZOJ 1266: [AHOI2006]上学路线route的更多相关文章
- BZOJ 1266: [AHOI2006]上学路线route(最短路+最小割)
第一问最短路.第二问,先把最短路的图建出来(边(u,v)满足d[s->u]+d[v->t]+d(u,v)==最短路径长度,就在图中,可以从源点和汇点分别跑一次最短路得到每个点到源点和汇点的 ...
- bzoj 1266 [AHOI2006] 上学路线 route 题解
转载请注明:http://blog.csdn.net/jiangshibiao/article/details/23989499 [原题] 1266: [AHOI2006]上学路线route Time ...
- 洛谷 P4300 BZOJ 1266 [AHOI2006]上学路线route
题目描述 可可和卡卡家住合肥市的东郊,每天上学他们都要转车多次才能到达市区西端的学校.直到有一天他们两人参加了学校的信息学奥林匹克竞赛小组才发现每天上学的乘车路线不一定是最优的. 可可:“很可能我们在 ...
- BZOJ 1266: [AHOI2006]上学路线route Floyd_最小割
十分简单的一道题. 图这么小,跑一边 Floyd 就得到第一问最短路径的答案. 考虑第二问怎么求:我们可以先将最短路径组成的图从原图中抽离出来,构成新图 $G$. 我们发现,只要 $G$ 的起点与终点 ...
- bzoj 1266 1266: [AHOI2006]上学路线route
1266: [AHOI2006]上学路线route Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 2356 Solved: 841[Submit][S ...
- [BZOJ 1266][AHOI2006]上学路线(最短路+最小割)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1266 分析: 很简单的题目,容易想到就是把所有的最短路径挑出来,然后在这个图里跑最小割 ...
- bzoj 1266 [AHOI2006] 上学路线
传送门 传说中的经典容斥+卢卡斯定理+中国剩余定理 题解传送门 //Achen #include<algorithm> #include<iostream> #include& ...
- bzoj1266 [AHOI2006]上学路线route floyd建出最短路图+最小割
1266: [AHOI2006]上学路线route Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 2490 Solved: 898[Submit][S ...
- bzoj1266 [AHOI2006]上学路线route floyd+最小割
1266: [AHOI2006]上学路线route Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 2490 Solved: 898[Submit][S ...
随机推荐
- Dubbo java.io.IOException: Can not lock the registry cache file
跑单测用例的时候,以前执行成功的用例,运行时控制台仍然会报 dubbo 相关的错误: Failed to save registry store file, cause: Can not lock t ...
- 关于css+div布局的疑问 2017-03-19
第一次布局一个静态网页,发现许多细节都需要自己探索,出现诸如以下问题: 1.布局问题:经常出现一个div被挤出来?做到一半少一个div布局? 布局之前,要点打好框架,明确每个地方的高宽是多少,争取精确 ...
- MyBatis极速入门开发手册(2017-2-6更新)
前言: 本篇文章对我的学习内容做一个归纳梳理,同时也记录一些学习过程中遇上的问题及注意事项等等,可以帮助新入门的朋友们消除一些误区与盲区,希望能帮上一些正在学习的朋友们.在编写时会引用一些mybati ...
- java学习笔记 --- String类
一.定义 就是由多个字符组成的一串数据.也可以看成是一个字符数组. 注意: 1.字符串是常量:它们的值在创建之后不能更改.为什么? 意思就是说字符串确定了,就会在常量池中生成这个字符串. 所以说它的值 ...
- iOS开发之文件(分段)下载
1.HTTP HEAD方法 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 t ...
- CSS -- 练习(待续优化)
啊啊啊 错误百出啊 错点总结: 字符全角半角.清楚浮动.结尾</div>有点乱找不到对应的了.注释要写好. <!DOCTYPE html> <html lang=&qu ...
- Linux中web服务运行情况的方法
监控一般通过脚本实现,使用定时任务定期执行检测. 1.端口 本地:ss,netstat,lsof 远程:telnet,namp,nc 2.本地进程数 例如: lsof -i:80|wc -l ps - ...
- SharePoint JavaScript 客户端对象使用视频教程
本次视频教程是为大家介绍如何使用SharePoint JavaScript客户端对象,包括对于站点.列表.文档库.列表项.文件夹.文件和附件等基本对象的操作,同时,为大家举几个简单的应用的例子,让大家 ...
- OpenStack_Glance
什么是Glace Glance即image service(镜像服务),就是为创建虚拟机提供镜像的地方 为什么要有Glance 这个问题问的好,openstack就是构建Iaas平台对外提供虚拟机的啊 ...
- IOS开发创建开发证书及发布App应用(九)——等待审核(审核几种状态)
以下是App应用的几种状态,如果看不到英文,建议复制到网站翻译一下就行,意思差不多能明白的 以上整套流程是在2013年写的,可能有些地方已经不太一样了,只是给大家做一下参考,毕竟再怎么改大概流程还是差 ...