上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 18 下一页
摘要: 给定一组不等式: \(x_{v1}-x_{u1}\le w_1\) \(x_{v2}-x_{u2}\le w_2\) (注意上面的变量的位置是(v,u,w)而不是(u,v,w)) 求满足上面约束的一组可行解,变形为 \(dis[v_1]\le dis[u_1]+w_1\) ,故从点 u 连接一条权值 阅读全文
posted @ 2021-02-10 04:06 purinliang 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 常见技巧: 新建超级源点:例如求到达一个点集中的任意一个点的最短路,就把这个点集的点都从一个超级源点连出 分层图最短路:给最短路多带上一个属性(例如使用某个优惠条件/加倍条件k次,有时候可以提前使用或者存储起来以后使用某个条件) 同余最短路:给n个整数a1,a2,an,求他们不能线性组合出的[lim 阅读全文
posted @ 2021-02-10 02:58 purinliang 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 适用于求解没有负环的全源最短路,最坏时间复杂度 \(O(nm\log m)\) 比Floyd要优秀(但是Floyd可以找出负环)。 在没有负权边时,使用n次单源最短路Dijkstra代替即可。 算法流程: 1、新建一个虚拟节点(编号为n+1),向[1,n]连接一条边权为0的虚拟边。 2、从n+1号节 阅读全文
posted @ 2021-02-10 02:53 purinliang 阅读(728) 评论(0) 推荐(0) 编辑
摘要: 适用于任何权的图,负权也可以做。假如从s出发的子图中存在负环,则算法会报告发现负环,否则会正确求出最短路。 松弛操作 一种基于松弛(relax)操作的最短路算法。 第i轮松弛(每条边使用一次)后,从节点s出发的经过<=i条边的到达每个节点的最短路已经找到。假如存在最短路,则最多经过n-1条边。所以假 阅读全文
posted @ 2021-02-08 11:03 purinliang 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 其实格子图很可能会和棋盘格染色有关。 namespace BFS { const int MAXN = 1e3 + 10; const int MAXM = 1e3 + 10; const int di[] = {0, 0, -1, 1, -1, -1, 1, 1}; const int dj[] 阅读全文
posted @ 2021-02-08 09:33 purinliang 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 当边权为某个定值w时,可以直接把最短路改为经过w边几次,那么可以用bfs。 namespace BFS { const int MAXN = 3e5 + 10; int n; vector<int> G[MAXN]; int dis[MAXN]; queue<int> Q; void bfs(int 阅读全文
posted @ 2021-02-08 09:24 purinliang 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 最大匹配数=最小点覆盖数(选最少的点,使得每条边至少选中一个点) 每个匹配任意选一个点。选出的点集恰好每条边至少覆盖一个端点,否则,存在一条边两端都没有被覆盖,那么这条边应该存在于最大匹配中。所以选出的点集足够覆盖整个图。(怎么证明是最小的呢) 最大独立集(最大的点集S使得点集中任意两个点均不联通) 阅读全文
posted @ 2021-02-07 11:24 purinliang 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 流量均为1。拆点S,限流为1,对于一个权值w的区间[L,R],从源点连到L,从R连到T,从L连到R容量为1,费用为w,每个点i向i+1连边。跑最大费用最大流,就会选出一串区间。 阅读全文
posted @ 2021-02-07 11:17 purinliang 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 例如从给某个区间A=[La,Ra]中的所有节点给区间B=[Lb,Rb]的所有节点都分别连接一条权值为w的边,求最短路。 对整个图建两棵线段树A和B。线段树A的内部,小区间走到大区间没有成本,连接0权值的边(象征着放弃小区间的特异性,在包含这个小区间的更大的集合中寻找机会)。线段树B的内部,大区间走到 阅读全文
posted @ 2021-02-07 10:47 purinliang 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 快速Walsh变换 给两个长度为 \(n\) 的序列 \(a,b\) ,满足 \(n=2^k\) ,序列标号为 \(a_0,a_1,\cdots,a_{n-1}\) , 求AND卷积: 序列 \(c\) ,满足 \(c_i=\sum\limits_{(j\&k)=i}a_j\cdot b_k\) 求 阅读全文
posted @ 2021-02-05 18:59 purinliang 阅读(241) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 18 下一页