P2469-[SDOI2010]星际竞速【费用流】
正题
题目链接:https://www.luogu.com.cn/problem/P2469
题目大意
给出nnn个点mmm条边的一张无向图,你每次可以选择一条s−>ts->ts−>t的路径花费AsA_sAs的代价出发,而且只能从编号小的点到编号大的点走,求最小花费使得所有点被经过恰好一次。
1≤n≤800,1≤m≤1.5×1041\leq n\leq 800,1\leq m\leq 1.5\times 10^41≤n≤800,1≤m≤1.5×104
解题思路
因为是点的限制所以直接拆点,然后中间连一条费用−K-K−K的边(记KKK是一个很大的数)这样就保证会经过这条边,然后最后答案加上n×Kn\times Kn×K即可。
然后因为流量不固定限制一下出流就好了。
code
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define ll long long
using namespace std;
const ll N=2000,inf=1e18,K=1e10;
struct node{ll to,next,w,c;
}a[510000];
ll n,m,tot=1,ans,s,ss,t;
ll ls[N],f[N],mf[N],pre[N];
bool v[N];queue<int> q;
void addl(ll x,ll y,ll w,ll c){a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;a[tot].w=w;a[tot].c=c;a[++tot].to=x;a[tot].next=ls[y];ls[y]=tot;a[tot].w=0;a[tot].c=-c;return;
}
bool SPFA(){memset(f,0x3f,sizeof(f));q.push(s);v[s]=1;f[s]=0;mf[s]=inf;while(!q.empty()){ll x=q.front();q.pop();v[x]=0;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(!a[i].w)continue; if(f[x]+a[i].c<f[y]){f[y]=f[x]+a[i].c;pre[y]=i;mf[y]=min(mf[x],a[i].w);if(!v[y])q.push(y),v[y]=1;}}}return f[t]<inf;
}
void Updata(){ans+=mf[t]*f[t];ll x=t;while(x!=s){a[pre[x]].w-=mf[t];a[pre[x]^1].w+=mf[t];x=a[pre[x]^1].to;}return;
}
signed main()
{scanf("%lld%lld",&n,&m);s=2*n+1;ss=2*n+2;t=2*n+3; addl(s,ss,n,0);addl(ss,t,n,0);for(ll i=1,x;i<=n;i++){scanf("%lld",&x);addl(ss,i,inf,x);addl(i,i+n,1,-K);addl(i+n,t,inf,0);}for(ll i=1;i<=m;i++){ll x,y,w;scanf("%lld%lld%lld",&x,&y,&w);if(x>y)swap(x,y);addl(x+n,y,inf,w);}while(SPFA())Updata();printf("%lld\n",ans+K*n);return 0;
}
P2469-[SDOI2010]星际竞速【费用流】相关推荐
- bzoj1927 [Sdoi2010]星际竞速 费用流
Description 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的 梦想,来自杰森座α星的悠悠也是其中之一.赛车大赛的赛场由N颗行星和M条双向星 ...
- (费用流)洛谷P2469 [SDOI2010]星际竞速
洛谷P2469 [SDOI2010]星际竞速 思路: 可以看出这是最小路径覆盖问题,最小路径覆盖=n−=n-=n−最大匹配数.所以这题就是最小费用最大流. 建图: 1.源点SSS向每个入点iii建(S ...
- P2469 [SDOI2010]星际竞速
P2469 [SDOI2010]星际竞速 题意: 有n个点,m个边,边是单向边(只能从小编号点到大编号点),你也可以花费ai直接到达点i.问将1~n所有点都经过一边最小费用是多少? 题解: 最小费用最 ...
- bzoj1927: [Sdoi2010]星际竞速
跟上一题几乎一样... #include<cstdio> #include<cstring> #include<iostream> #include<algo ...
- BZOJ1927 [Sdoi2010]星际竞速
标签:费用流,网络流 题目 题目传送门 Description 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的 梦想,来自杰森座α星的悠悠也是其中之 ...
- bzoj 1927: [Sdoi2010]星际竞速
题意: 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的 梦想,来自杰森座α星的悠悠也是其中之一.赛车大赛的赛场由N颗行星和M条双向星际航路构成,其中 ...
- 【BZOJ 1927】 [Sdoi2010]星际竞速
Description 10 年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一, 夺得这个项目的冠军无疑是很多人的梦想,来自杰森座 α星的悠悠也是其中之一. 赛车大赛的赛场由 N 颗行星和 ...
- 图论-网络流⑦-费用流解题
图论-网络流⑦-费用流解题 上一篇:图论-网络流⑥-费用流 下一篇:图论-网络流⑧-有上下界的网络流 参考文献: https://www.luogu.com.cn/blog/user9012/solu ...
- C++之路进阶——codevs2313(星际竞速)
2313 星际竞速 2010年省队选拔赛山东 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 10 年一度的银河系赛车大 ...
- [BZOJ 1221][HNOI2001]软件开发(费用流)
Description 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员 ...
最新文章
- SpringCloud Zuul初体验
- vue/cli 3.0 与 2.0脚手架怎样mock数据
- c++学习笔记之友元函数
- ELK 企业级日志分析系统
- 硬货 | 一片小小的薄膜,却可以粘住全世界!
- Java,JavaFX的流利设计风格文本字段和密码字段
- 101个Google技巧——Google技巧的终极收集
- 2015 年 4 月份 LeanCloud 更新汇总
- 单链表逆置-java(递归与非递归)
- 机器学习之多种算法优缺点总结及优化方法
- 腾讯云人员缩减,急盈利,3000~4000 人面临被裁
- [附源码]SSM计算机毕业设计小微企业库存管理系统JAVA
- matlab输出以下图形,输出高品质MATLAB图形的方法与技巧_陈丽安.pdf
- Vanishing gradient and activiation funcation(ReLU、Maxout)
- ubuntu命令行查看dns_linux命令,查看dns服务器的状态,查看dhcp服务器的状态
- Cruzer Profile 原理分析
- “制订”与“制定”的区别
- Fragmentation 源码分析
- struts2 验证框架DTD检校修改
- 华为onu 调为交换机_华为MA5620/MA5626 ONU配置为交换机
热门文章
- html5中表格如何等分,纯css3饼图五等分
- androidstudio学习总结_Android 开发工程师自述:2年的开发,我总结了7条经验
- columnproperty server sql_获取SQL Server表字段的各种属性
- 10 邮件槽_员工主动发离职邮件,提出申请又反悔,法院判决让人懵了!
- 揭秘python的5种最佳调试方法_揭秘 IPython 的 5 种最佳调试方法-阿里云开发者社区...
- sql两个表查不同数据_产品操作MySQL第6篇 – 数据过滤-WHERE子句
- python——学习笔记2
- Java源文件声明规则
- [PAT乙级]1020 月饼
- [蓝桥杯2018初赛]乘积尾零-数论