摘要:
/* * 正难则反 * f[i] 表示前 i 个数中被删除的数的最小和 * f[i] = min(f[j]) + num, i - k + 1 #define LL long long const int N = 1e5 + 10; LL tot, d, n, k; LL p[N], head = 1, tail = 1; LL q[N], f[N], ans; int main... 阅读全文
摘要:
/* * 此题同bzoj2725 * 增加了枚举边的操作 */ #include const int N = 2e5 + 10;// oo = 999999999; #define LL long long const LL oo = 9e18; int n, m, S, T; int Short_path[N], Snum[N], Tnum[N], Id[N], pa... 阅读全文
摘要:
/* * 对于不在最短路树上的边(x, y) * 1 * | * | * t * / \ * / \ * x-----y * 考虑这样一种形态的图, ‘-’ 标记为非最短路树的边 * 对于边集(x, t)内的任意一点 i, 到达它的所有方式一定是 1 -> t... 阅读全文
摘要:
* 给出一张图 * 每次删掉一条边后求 the shortest path from S to T * 线段树维护最短路径树 * 具体维护从某点开始偏离最短路而到达 T 的最小距离 * 首先记录下最短路径 * 考虑每一种走法都是 S -> a -> x -> y -> b -> T, 其中 S -> 阅读全文