洛谷P2469 [SDOI2010]星际竞速

思路:

可以看出这是最小路径覆盖问题,最小路径覆盖=n−=n-=n−最大匹配数。所以这题就是最小费用最大流。
建图:
1、源点SSS向每个入点iii建(S,i,1,0)(S,i,1,0)(S,i,1,0)的边。
2、每个出点i′i^{'}i′向汇点TTT建(i′,T,1,0)(i^{'},T,1,0)(i′,T,1,0)的边。
3、源点SSS向每个出点i′i^{'}i′建(S,i′,1,Ai)(S,i^{'},1,A_i)(S,i′,1,Ai​)的边。
4、每组uuu向v′v^{'}v′建(u,v′,1,w)(u,v^{'},1,w)(u,v′,1,w)的边。

代码:

#include<bits/stdc++.h>
#define pii pair<int,int>
#define ll long long
#define cl(x,y) memset(x,y,sizeof(x))
#define loop(x,y,z) for(x=y;x<=z;x++)
#define reve(x,y,z) for(x=y;x>=z;x--)
#define ct cerr<<"Time elapsed:"<<1.0*clock()/CLOCKS_PER_SEC<<"s.\n";
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(),x.end()
#define lson x<<1,l,mid
#define rson x<<1|1,mid+1,r
#define INF 1e18
const int N=1e4+10;
const int M=1e6+10;
const int mod=1e9+7;
const int inf=0x3f3f3f3f;
const double eps=1e-8;
const double pi=acos(-1);
using namespace std;
struct edge
{int u,v,f,w;
}e[M];
int head[N],len=1,dis[N],vis[N];
int maxflow,mincost;
int pre[N],path[N];
void add(int u,int v,int f,int w)
{e[++len]={head[u],v,f,w};head[u]=len;
}
void inc(int u,int v,int f,int w)
{add(u,v,f,w);add(v,u,0,-w);
}
int spfa(int s,int t)
{cl(dis,inf);cl(vis,0);cl(pre,-1);dis[s]=0;vis[s]=1;queue<int>q;q.push(s);while(!q.empty()){int u=q.front(),i;q.pop();vis[u]=0;for(i=head[u];i;i=e[i].u){int v=e[i].v,w=e[i].w;if(e[i].f && dis[v]>dis[u]+w){dis[v]=dis[u]+w;pre[v]=u;path[v]=i;if(!vis[v]){q.push(v);vis[v]=1;}}}}return pre[t]!=-1;
}
void ek(int s,int t)
{while(spfa(s,t)){int mi=inf,i;for(i=t;i!=s;i=pre[i])mi=min(mi,e[path[i]].f);for(i=t;i!=s;i=pre[i]){e[path[i]].f-=mi;e[path[i]^1].f+=mi;}maxflow+=mi;mincost+=dis[t]*mi;}
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,m,i;cin>>n>>m;int s=0,t=2*n+1;for(i=1;i<=n;i++){inc(s,2*i-1,1,0);int w;cin>>w;inc(s,2*i,1,w);inc(2*i,t,1,0);}for(i=1;i<=m;i++){int u,v,w;cin>>u>>v>>w;if(u>v)swap(u,v);inc(u*2-1,2*v,1,w);}ek(s,t);cout<<mincost<<endl;return 0;
}

(费用流)洛谷P2469 [SDOI2010]星际竞速相关推荐

  1. P2469 [SDOI2010]星际竞速

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

  2. [费用流]洛谷 P2053 修车(zkw费用流模版)

    题目描述 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待 ...

  3. bzoj1927: [Sdoi2010]星际竞速

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

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

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

  5. 图论--网络流--最大流 洛谷P4722(hlpp)

    题目描述 给定 nn 个点,mm 条有向边,给定每条边的容量,求从点 ss 到点 tt 的最大流. 输入格式 第一行包含四个正整数nn.mm.ss.tt,用空格分隔,分别表示点的个数.有向边的个数.源 ...

  6. BZOJ1927 [Sdoi2010]星际竞速

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

  7. 洛谷p5465 [PKUSC2018]星际穿越

    [洛谷p5465][PKUSC2018]星际穿越 题面 洛谷 题解 众所周知PKUSC的题大多都不可做,今天好不容易看到1个倍增水题(我猜当时应该全场切了). 我们设\(f[i][j]\)表示\(i\ ...

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

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

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

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

最新文章

  1. 最古老的100个.com域名
  2. asp.net关于kindeditor 上传图片出现服务器故障的解决办法
  3. 用C#进行ArcGIS 10 Engine 开发 - 安装配置和入门程序说明
  4. A - 数据结构实验之查找一:二叉排序树
  5. 5 Android数据存储 任务二 应用程序数据文件夹里的文件读写 ,
  6. Linux进程和计划任务管理(详细图例)
  7. js导出excel单元格内换行符代码_前端和excel的那些事
  8. 使用叶神模拟器无法访问本机服务器的问题(报错:java.net.ConnectException: failed to connect to /127.0.0.1 (port 5000) )
  9. LeetCode 350. 两个数组的交集 II(哈希)
  10. 谷歌 | 多任务学习,如何挑选有效的辅助任务?只需一个公式!
  11. leetcode 只出现一次的数字
  12. java 心跳程序_Java实现心跳机制的方法
  13. Swift - 控制流/控制结构说明(if,switch,for,while)
  14. 关于PyCharm卡顿的问题
  15. 如何修改hosts文件权限
  16. UltraISO 对光盘镜像常用操作方法图解
  17. Redis常用命令总结,为什么阿里的程序员成长如此之快
  18. 免费下载卫星地图 高清卫星地图软件
  19. 新冠疫情历史数据可视化分析
  20. 三星Q950T全景声回音壁测试心得

热门文章

  1. docker查看内部tcp长连接
  2. Jump gameII
  3. Git分支管理及命名规范
  4. response下载文件
  5. linux服务器关不了机,解决Linux关不了机开机,报错NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s的bug...
  6. 上班假装很忙,下班装逼唬妹子的几个神器,人人都能用
  7. 程序员学习指南_程序员管理压力指南
  8. 快鲸科技邀您一起合作,共同发展
  9. OpenHarmony恢复启动子系统init进程之服务管理与发布
  10. 2016 Youtube 推荐系统介绍