正题

题目链接: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]星际竞速【费用流】相关推荐

  1. bzoj1927 [Sdoi2010]星际竞速 费用流

    Description 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的 梦想,来自杰森座α星的悠悠也是其中之一.赛车大赛的赛场由N颗行星和M条双向星 ...

  2. (费用流)洛谷P2469 [SDOI2010]星际竞速

    洛谷P2469 [SDOI2010]星际竞速 思路: 可以看出这是最小路径覆盖问题,最小路径覆盖=n−=n-=n−最大匹配数.所以这题就是最小费用最大流. 建图: 1.源点SSS向每个入点iii建(S ...

  3. P2469 [SDOI2010]星际竞速

    P2469 [SDOI2010]星际竞速 题意: 有n个点,m个边,边是单向边(只能从小编号点到大编号点),你也可以花费ai直接到达点i.问将1~n所有点都经过一边最小费用是多少? 题解: 最小费用最 ...

  4. bzoj1927: [Sdoi2010]星际竞速

    跟上一题几乎一样... #include<cstdio> #include<cstring> #include<iostream> #include<algo ...

  5. BZOJ1927 [Sdoi2010]星际竞速

    标签:费用流,网络流 题目 题目传送门 Description 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的 梦想,来自杰森座α星的悠悠也是其中之 ...

  6. bzoj 1927: [Sdoi2010]星际竞速

    题意: 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的 梦想,来自杰森座α星的悠悠也是其中之一.赛车大赛的赛场由N颗行星和M条双向星际航路构成,其中 ...

  7. 【BZOJ 1927】 [Sdoi2010]星际竞速

    Description 10 年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一, 夺得这个项目的冠军无疑是很多人的梦想,来自杰森座 α星的悠悠也是其中之一. 赛车大赛的赛场由 N 颗行星和 ...

  8. 图论-网络流⑦-费用流解题

    图论-网络流⑦-费用流解题 上一篇:图论-网络流⑥-费用流 下一篇:图论-网络流⑧-有上下界的网络流 参考文献: https://www.luogu.com.cn/blog/user9012/solu ...

  9. C++之路进阶——codevs2313(星际竞速)

    2313 星际竞速 2010年省队选拔赛山东  时间限制: 3 s  空间限制: 128000 KB  题目等级 : 大师 Master 题目描述  Description 10 年一度的银河系赛车大 ...

  10. [BZOJ 1221][HNOI2001]软件开发(费用流)

    Description 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员 ...

最新文章

  1. SpringCloud Zuul初体验
  2. vue/cli 3.0 与 2.0脚手架怎样mock数据
  3. c++学习笔记之友元函数
  4. ELK 企业级日志分析系统
  5. 硬货 | 一片小小的薄膜,却可以粘住全世界!
  6. Java,JavaFX的流利设计风格文本字段和密码字段
  7. 101个Google技巧——Google技巧的终极收集
  8. 2015 年 4 月份 LeanCloud 更新汇总
  9. 单链表逆置-java(递归与非递归)
  10. 机器学习之多种算法优缺点总结及优化方法
  11. 腾讯云人员缩减,急盈利,3000~4000 人面临被裁
  12. [附源码]SSM计算机毕业设计小微企业库存管理系统JAVA
  13. matlab输出以下图形,输出高品质MATLAB图形的方法与技巧_陈丽安.pdf
  14. Vanishing gradient and activiation funcation(ReLU、Maxout)
  15. ubuntu命令行查看dns_linux命令,查看dns服务器的状态,查看dhcp服务器的状态
  16. Cruzer Profile 原理分析
  17. “制订”与“制定”的区别
  18. Fragmentation 源码分析
  19. struts2 验证框架DTD检校修改
  20. 华为onu 调为交换机_华为MA5620/MA5626 ONU配置为交换机

热门文章

  1. html5中表格如何等分,纯css3饼图五等分
  2. androidstudio学习总结_Android 开发工程师自述:2年的开发,我总结了7条经验
  3. columnproperty server sql_获取SQL Server表字段的各种属性
  4. 10 邮件槽_员工主动发离职邮件,提出申请又反悔,法院判决让人懵了!
  5. 揭秘python的5种最佳调试方法_揭秘 IPython 的 5 种最佳调试方法-阿里云开发者社区...
  6. sql两个表查不同数据_产品操作MySQL第6篇 – 数据过滤-WHERE子句
  7. python——学习笔记2
  8. Java源文件声明规则
  9. [PAT乙级]1020 月饼
  10. [蓝桥杯2018初赛]乘积尾零-数论