AC日记——[Sdoi2010]星际竞速 bzoj 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的更多相关文章
- Luogu 2469 [SDOI2010]星际竞速 / HYSBZ 1927 [Sdoi2010]星际竞速 (网络流,最小费用流)
Luogu 2469 [SDOI2010]星际竞速 / HYSBZ 1927 [Sdoi2010]星际竞速 (网络流,最小费用流) Description 10年一度的银河系赛车大赛又要开始了.作为全 ...
- 【bzoj】1927 [Sdoi2010]星际竞速
[算法]最小费用最大流 [题解]跟滑雪略有类似,同样因为可以重复所以不是最小路径覆盖. 连向汇的边容量为1足矣,因为一个点只会出去一次(路径结束). bzoj 1927 [Sdoi2010]星际竞速 ...
- BZOJ 1927: [Sdoi2010]星际竞速
1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 2051 Solved: 1263[Submit][Stat ...
- BZOJ 1927: [Sdoi2010]星际竞速 费用流
1927: [Sdoi2010]星际竞速 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- bzoj 1927 [Sdoi2010]星际竞速(最小费用最大流)
1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 1576 Solved: 954[Submit][Statu ...
- BZOJ 1927: [Sdoi2010]星际竞速(最小费用最大流)
拆点,费用流... ----------------------------------------------------------------------------- #include< ...
- BZOJ 1927: [Sdoi2010]星际竞速 [上下界费用流]
1927: [Sdoi2010]星际竞速 题意:一个带权DAG,每个点恰好经过一次,每个点有曲速移动到他的代价,求最小花费 不动脑子直接上上下界费用流过了... s到点连边边权为曲速的代价,一个曲速移 ...
- Bzoj 1927: [Sdoi2010]星际竞速(网络流)
1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec Memory Limit: 259 MB Description 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大 ...
- 1927: [Sdoi2010]星际竞速
1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 2040 Solved: 1257[Submit][Stat ...
随机推荐
- Median of Two Sorted Arrays LeetCode Java
两排序好的数组,找中位数 描述There are two sorted arrays A and B of size m and n respectively. Find the median of ...
- imageX
imageX 编辑 ImageX 是一个命令行工具,原始设备制造商 (OEM) 和公司可以使用它来捕获.修改和应用基于文件的磁盘映像以进行快速部署.ImageX 可以使用 Windows 映像 (.w ...
- Struts之上传
上传的jsp写法: <tr> <td width="50%" align="left">软件上传: <input type=&qu ...
- 42、通过ontouch检测expandableListview的单击、长按、列表滚动
一.在model定义变量: public boolean isExpandableListviewScroll = false;//这个是 首先监听expandableListview的滚动: Exp ...
- 使用 htaccess 重写 url,隐藏查询字符串
例如我们有如下 URL: http://example.com/users.php?name=tania 但是我们想要让 URL 变成如下: http://example.com/users/tani ...
- Atom-无懈可击的Markdown编辑器
备战美赛期间,向岳神学习,搞了Atom玩协作开发,第一次没有自动补全的手撸了遗传算法.今天发现Atom还有写Markdown的妙用,遂拿来练手. 1. 安装Atom 下载安装Atom:https:// ...
- 一个iOS程序员眼中的跨域问题
摘要: 跨域问题是web开发领域一个常见的问题,相信每个web开发者都遇到"跨域"的问题 最近公司的iOS开发任务比较少,所以自己最近开始了Web开发的任务,在用H5做了很多页面, ...
- Mysql Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
Mysql update error: Error Code: 1175. You are using safe update mode and you tried to update a table ...
- 深入学习之mysql(二)表的操作
1.表:是数据库中的存储数据的基本单位,一个表包含若干个字段和值 2.创建表: CREATE TABLE 表名称 ( 字段名1 数据库类型1 [约束条件1], 字段名2 数据库类型2 [约束条件2], ...
- 【两种方式 Service References和 web References 】手把手教你引入webservice 服务
1.对于一个webservie服务我们如何引入到自己的项目中去呢 第一种方法[Service References]:鼠标移到属性上 右键添加服务引用 然后在地址栏输入webservice 地址 点击 ...