1927

思路:

  连边,拆点;

  每个点拆成i,i+n,都向t连边;

  i到t表示高速模式,i+n到t表示跳跃模式;

  然后读入路径,如果u>v,则交换u,v;

  u向v+n连边;

  spfa跑最小费用;

来,上代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; #define maxn 805
#define maxm 7000000
#define INF 0x7fffffff int dis[maxn<<],cnt=,s,t,que[maxm],pre[maxn<<],ans;
int n,m,head[maxn<<],E[maxm],V[maxm],F[maxm],W[maxm]; bool if_[maxn<<]; inline void in(int &now)
{
register int if_z=;now=;
register char Cget=getchar();
while(Cget>''||Cget<'')
{
if(Cget=='-') if_z=-;
Cget=getchar();
}
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
now*=if_z;
} bool spfa()
{
for(int i=s;i<=t;i++) dis[i]=INF,pre[i]=-,if_[i]=false;
int h=,tail=;dis[s]=,if_[s]=true,que[]=s;
while(h<tail)
{
int now=que[h++];if_[now]=false;
for(int i=head[now];i;i=E[i])
{
if(F[i]>&&dis[V[i]]>dis[now]+W[i])
{
pre[V[i]]=i;
dis[V[i]]=dis[now]+W[i];
if(!if_[V[i]])
{
if_[V[i]]=true;
que[tail++]=V[i];
}
}
}
}
return dis[t]!=INF;
} int main()
{
in(n),in(m);
t=n*+;int u,v,pos;
for(int i=;i<=n;i++)
{
in(pos);
E[++cnt]=head[s],V[cnt]=i,F[cnt]=,W[cnt]=,head[s]=cnt;
E[++cnt]=head[i],V[cnt]=s,F[cnt]=,W[cnt]=,head[i]=cnt;
E[++cnt]=head[s],V[cnt]=i+n,F[cnt]=,W[cnt]=pos,head[s]=cnt;
E[++cnt]=head[i+n],V[cnt]=s,F[cnt]=,W[cnt]=-pos,head[i+n]=cnt;
E[++cnt]=head[i+n],V[cnt]=t,F[cnt]=,W[cnt]=,head[i+n]=cnt;
E[++cnt]=head[t],V[cnt]=i+n,F[cnt]=,W[cnt]=,head[t]=cnt;
}
while(m--)
{
in(u),in(v),in(pos);
if(u>v) swap(u,v);
E[++cnt]=head[u],V[cnt]=v+n,F[cnt]=,W[cnt]=pos,head[u]=cnt;
E[++cnt]=head[v+n],V[cnt]=u,F[cnt]=,W[cnt]=-pos,head[v+n]=cnt;
}
while(spfa())
{
int now=t;pos=INF;
while(pre[now]!=-) pos=min(pos,F[pre[now]]),now=V[pre[now]^];now=t;
while(pre[now]!=-) F[pre[now]]-=pos,F[pre[now]^]+=pos,now=V[pre[now]^];
ans+=pos*dis[t];
}
cout<<ans;
return ;
}

AC日记——[Sdoi2010]星际竞速 bzoj 1927的更多相关文章

  1. Luogu 2469 [SDOI2010]星际竞速 / HYSBZ 1927 [Sdoi2010]星际竞速 (网络流,最小费用流)

    Luogu 2469 [SDOI2010]星际竞速 / HYSBZ 1927 [Sdoi2010]星际竞速 (网络流,最小费用流) Description 10年一度的银河系赛车大赛又要开始了.作为全 ...

  2. 【bzoj】1927 [Sdoi2010]星际竞速

    [算法]最小费用最大流 [题解]跟滑雪略有类似,同样因为可以重复所以不是最小路径覆盖. 连向汇的边容量为1足矣,因为一个点只会出去一次(路径结束). bzoj 1927 [Sdoi2010]星际竞速 ...

  3. BZOJ 1927: [Sdoi2010]星际竞速

    1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 2051  Solved: 1263[Submit][Stat ...

  4. BZOJ 1927: [Sdoi2010]星际竞速 费用流

    1927: [Sdoi2010]星际竞速 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...

  5. bzoj 1927 [Sdoi2010]星际竞速(最小费用最大流)

    1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1576  Solved: 954[Submit][Statu ...

  6. BZOJ 1927: [Sdoi2010]星际竞速(最小费用最大流)

    拆点,费用流... ----------------------------------------------------------------------------- #include< ...

  7. BZOJ 1927: [Sdoi2010]星际竞速 [上下界费用流]

    1927: [Sdoi2010]星际竞速 题意:一个带权DAG,每个点恰好经过一次,每个点有曲速移动到他的代价,求最小花费 不动脑子直接上上下界费用流过了... s到点连边边权为曲速的代价,一个曲速移 ...

  8. Bzoj 1927: [Sdoi2010]星际竞速(网络流)

    1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec Memory Limit: 259 MB Description 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大 ...

  9. 1927: [Sdoi2010]星际竞速

    1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 2040  Solved: 1257[Submit][Stat ...

随机推荐

  1. VS2010官方下载地址

    http://download.microsoft.com/download/2/4/7/24733615-AA11-42E9-8883-E28CDCA88ED5/X16-42552VS2010Ult ...

  2. Reachability from the Capital

    题目描述 There are nn cities and mm roads in Berland. Each road connects a pair of cities. The roads in ...

  3. HTML5——7个最牛的HTML5移动开发框架

    月的iPhoneDevCamp上写成的.创建它的一个主要动力是基于一个几乎每一个单独的iPhone开发新手都要面对的简单事实:Objective-C是一个对Web开发人员来说非常陌生的环境,并且Web ...

  4. xgboost原理总结和代码展示

    关于xgboost的学习推荐两篇博客,每篇看2遍,我都能看懂,你肯定没问题 两篇方法互通,知识点互补!记录下来,方便以后查看 第一篇:作者:milter链接:https://www.jianshu.c ...

  5. centos使用--vsftpd配置

    目录 1 在服务器配置FTP服务 1.1 在root权限下,通过如下命令安装Vsftp(以CentOS系统为例): 1.2 在启动vsftpd服务之前,需要登录云服务器修改配置文件,禁用匿名登录. 1 ...

  6. 2、HTML基础总结 part-2

    1.表单一 <html> <body> <form> 姓名: <input type="text" name="name&quo ...

  7. Beamer模板

    普通模板: \documentclass[UTF-8]{beamer} \usepackage{ctex} \usetheme{CambridgeUS} \begin{document} \secti ...

  8. IE hasLayout详解

    hasLayout定义 haslayout 是Windows Internet Explorer渲染引擎的一个内部组成部分.在Internet Explorer中,一个元素要么自己对自身的内容进行计算 ...

  9. linux文件备份到windows方法

    目录 背景 方案 过程记录 在windows上创建共享目录 将windows上共享的目录绑定到/mnt目录下 问题处理 背景 需编写部门wiki备份数据脚本.但wiki部署在linux上,而需将备份数 ...

  10. js获取触发事件的元素

    //获取事件 var e = window.event; //获取元素 obj = e.target || e.srcElement; console.log(e); checkRepeat(e.ta ...