正题

题目链接: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. 图像处理和图像识别中常用的OpenCV函数
  2. Excel 打开csv显示在一个单元格
  3. c++ STL 全排列
  4. android module 引用libs里面的so文件_Android中的JNI开发,你了解多少?
  5. 菜鸟学Linux 第031篇笔记 script,控制,while,function
  6. Applications Manager应用性能透视能力--Java Web事务监控
  7. SQLite学习和使用
  8. WIN10如何管理开机启动项?
  9. 大学四年,工作四年,我把私藏了 8 年的网站全贡献出来了!!!
  10. 微信小程序点击事件传递参数
  11. python实现格兰杰因果关系检验
  12. 尺度不变特征变换(SIFT算法…
  13. c语言change函数用法,通过值和引用函数
  14. php根据城市获取天气预报,中国天气网 天气预报API 国家气象局 根据城市名称抓取城市(示例代码)...
  15. 免费天气查询工具类源码,开箱即用,根据中国气象局API编写。高效稳定
  16. Mysql数据库以及sql语言
  17. 【创建Vue手脚架项目】
  18. vlookup函数的使用(Excel中)
  19. 不开通百度云会员也可以会员速度下载
  20. Nginx代理mysql端口

热门文章

  1. linux内核分析与移植,内核分析移植
  2. java gui 移动_JavaGUI如图:当鼠标按left按钮,右边的字会移动到左边按 爱问知识人...
  3. dhcp服务器显示主机名,linux – 当我没有在dhclient.conf中定义一个时,我的DHCP服务器如何知道我的机器的主机名?...
  4. php程序员跟java一样吗,【后端开辟】php程序员能够转java吗?
  5. [Java网络编程基础]网络编程概述,三要素,IP地址
  6. 前缀和,差分算法训练
  7. Observer(观察者)--对象行为型模式
  8. 找出有序数组X和Y中所有元素的中位数(X,Y分别含n个元素)(算法导论第三版9.3-8)
  9. 网络原理题+复习资料
  10. 二叉树的遍历(堆栈)