【Luogu】P2469星际竞速(费用流)】的更多相关文章

1927: [Sdoi2010]星际竞速 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1927 Description 10 年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一, 夺得这个项目的冠军无疑是很多人的梦想,来自杰森座 α星的悠悠也是其中之一. 赛车大赛的赛场由 N 颗行星和M条双向星际航路构成,其中每颗行星都有 一个不同的引力值.大赛要…
传送门 发现它的本质是求一个费用最小的路径覆盖 最小路径覆盖是网络流23题中的一个比较典型的模型 所以考虑相似的建边 因为每一个点要恰好经过一次,是一个有上下界的网络流,故拆点,星球\(i\)拆成\(A_i,B_i\)两个点,\(S->B_i , A_i -> T\),原图中的边\((i,j)\)变为\(B_i -> A_j\),费用不变. 接下来我们需要考虑费用的设置 首先\(S->B_i\)的边的费用显然是通过空间跳跃到达这个点需要的时间\(a_i\). 但有一个问题:在上面以…
考虑费用流,题目要求走n个点都走完且恰好一次,显然流量的限制为n. 建立源点s和汇点t,并把每个星球拆成两个点i和i',分别表示已到达该点和经过该点. 对于能力爆发,建边(s,i',1,w). 对应高速航行,建边(s,i,1,0), (i,j',1,w). 因为每个点必须走一次且只能走一次.建边(i',t,1,0). 其实就是类似最小路径覆盖的建图方法. # include <cstdio> # include <cstring> # include <cstdlib>…
传送门 解题思路 仿照最小路径覆盖问题,用费用流解决此题.最小路径覆盖问题是拆点连边后用\(n-\)最大匹配,这里的话也是将每个点拆点,源点向入点连流量为\(1\),费用为\(0\)的边,向出点连流量为\(1\),费用为\(a[i]\)的边,出点向汇点连流量为\(1\),费用为\(0\)的边.然后对于每条边,由\(x\)的入点向\(y\)的出点连流量为\(1\),费用为路径长度的边.跑一遍费用流. 代码 #include<iostream> #include<cstdio> #in…
类似于最短路的网络流,而且还要保证每个点经过一次,拆点就比较方便了. 连边怎么连?要保证最大流是n(每个点经过一次)还要能从直接跳转 将每个点拆点.源点向每个点的入点连一条容量为1费用为0的边.源点向每个点的出点连一条容量为1费用为瞬移到该点所需时间的边.每个点的出点向汇点连一条容量为1费用为0的边.对于每条边(i,j),从i点入点向j点出点连一条容量为1费用为航路所需时间的边. 就是,到了每个点,出点会标记到了这个点(连向T一条边的流量会流过去) 走从S到一个点x的入点边,相当于选择从这个点x…
题目链接 费用流,类似最小路径覆盖. 从起点向i连一条容量1费用0的边,从i'向终点连一条容量1费用0的边: 从起点向i'连一条容量1费用为瞬移的边,从i向j'连一条容量1费用为边权的边. 然后跑就可以了. #include<cstdio> #include<cstdlib> #include<cctype> #include<cstring> #include<algorithm> #include<queue> #define m…
上下界费用流比较无脑,提供一种更巧妙的费用流,无需上下界. #include <cstdio> #include <algorithm> #include <queue> #include <cstring> , M = , INF = 0x3f3f3f3f; struct Edge { int nex, v, c, len; }edge[M << ]; ; int e[N], d[N], vis[N], pre[N], flow[N]; std…
P2469 [SDOI2010]星际竞速 最小路径覆盖问题 每个星球必须恰好去一次,而每次高速航行都是从一个星球到另一个星球. 那么高速航行的起点可以保证被去过 高速航行和空间跳跃可以是互相独立的 将每个点$i$拆成$i_1,i_2$,套路地连边 $link(S,i_1,1,0)$ $link(S,i_2,1,val_i)$ $link(i_2,T,1,0)$ 对于每条边$(u,v,w)$: $link(u_1,v_2,w)$ 蓝后跑一遍费用流,费用流会覆盖所有路径$(i_2,T)$ 满流的最小…
1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1576  Solved: 954[Submit][Status][Discuss] Description 10 年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一, 夺得这个项目的冠军无疑是很多人的梦想,来自杰森座 α星的悠悠也是其中之一. 赛车大赛的赛场由 N 颗行星和M条双向星际航路构成,其中每颗行星都有 一个不同的引力值.大赛要求车手们从一…
拆点,费用流... ----------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<queue>   #define rep( i, n ) for( int i = 0; i < n;…