
最短路
Love_xyh
这个作者很懒,什么都没留下…
展开
-
[SHOI2012]回家的路
考虑在m个转乘站和起点终点之间建边,忽略其它的车站。之后任意最短路均可。只有行列两维,所以不一定要将此题扯到分层图里面去吧。#include <bits/stdc++.h>using namespace std;const int N=2e4+5,M=1e5+5;int n,m,sx,sy,tx,ty,tot,size,ans,inf;int x[M],y[M];int d[M*2];bool vis[M*2];vector<int>hang[N],lie[N];原创 2020-08-20 15:37:28 · 253 阅读 · 0 评论 -
CF786B Legacy
暴力建图m次,最多会出现nm条边。发现建图是对一个连续的区间进行操作,所以给每个区间一个新的编号,将一个区间看成是一个点来建图,即可做到“假的m条边”。而对于某些大的区间来说,由于可能询问的小的区间,所以我们需要在区间与区间之间再次连边,而区间内连边的最大条数为logn,m次则是mlogn。这个优化过程就是线段树优化建图。#include <bits/stdc++.h>#def...原创 2020-03-26 20:52:16 · 160 阅读 · 0 评论 -
[USACO08JAN]电话线Telephone Lines
原本以为此题是一道很套路的二分+最短路题,今天二刷hzw的博客再看这题惊奇的发现可以用分层图来做。因为可以k次免费,所以把图分成0到k+1层。第i层的d[j]表示:从节点1出发,免费i次道路费用的达到j节点的最小花费。然后注意一下数据范围,要考虑到k+1层,所以节点数会变成(k+1)倍。#include <bits/stdc++.h>using namespace std;c...原创 2020-02-21 00:40:56 · 202 阅读 · 0 评论 -
BZOJ 1003: [ZJOI2006]物流运输
简单n^3DP:f[i][j]表示前i天,换了j次路径。对100天中每一段区间都做一遍最短路,求出这段天数区间内1-m的最短路,预处理完毕后,就可DP了。#include <bits/stdc++.h>using namespace std;const int N=101,M=21;int n,m,val,e,x,y,z,day,p,aa,bb,ans,inf;int a[...原创 2019-11-19 19:19:13 · 143 阅读 · 0 评论 -
BZOJ 1001: [BeiJing2006]狼抓兔子
最小割等于最大流,交一发最大流,妥妥地TLE。虽然对于此题最小割的复杂度是不正确的,但我们仍可以学到,对于无向图来说,建图的时候,直接建图(u,v,w),(v,u,w)即可,不需要建图:(u,v,w),(v,u,0),(v,u,w),(u,v,0)。#include <bits/stdc++.h>using namespace std;const int N=1e3+5,INF...原创 2019-11-17 19:20:11 · 191 阅读 · 0 评论