摘要:
OJ题号: BZOJ1010 思路: 斜率优化动态规划。 由题意得状态转移方程为$f_i=\displaystyle{\min_{j=0}^{i-1}}\{f_j+\left(i-j-1+\displaystyle{\sum_{k=j+1}^i}c_k-L\right)^2\}$。 用$a_i$表示 阅读全文
摘要:
OJ题号: BZOJ1016 题目大意: 给定一个无向带权图,求最小生成树的个数。 思路: 先跑一遍最小生成树,统计相同权值的边出现的个数。 易证不同的最小生成树,它们不同的那一部分边的权值实际上是相同的。 所以我们可以暴力枚举相同权值的边,统计加入这些边总共能有多少种方法。 根据乘法原理,把每种边 阅读全文
摘要:
OJ题号: BZOJ4242、AtCoder-JOISC2014E 题目大意: 给你一个h*w的网格图,每个格子可能是空地、障碍物和建筑物。 你只可以从空地上走过或者从建筑物中穿过。 建筑物总共有p个,现在有q组询问,求从建筑物A到建筑物B的过程中在空地上连续走过的最长一段路最短能是多少。 思路: 阅读全文
摘要:
OJ题号: BZOJ1977、COGS2453 题目大意: 给你一个无向连通图,求严格次小生成树。 思路: 对于一般次小生成树,我们有一个结论:一般次小生成树一定可以通过替换掉最小生成树某一条边得到。 因此对于一般次小生成树,我们只需要枚举不在MST上的每一条边,并枚举这条边对应两点路径上的所有边, 阅读全文
摘要:
题目大意: 有n个点的连通图,有m次可以将某一条边权值减半的机会。 不同的机会可以叠加作用于同一条边。 求1~n的最短路。 思路: 拆点,记录1到每个点在使用不同次数的机会后的最短路,然后直接跑Dijkstra即可。 阅读全文
摘要:
OJ题号: BZOJ1375、ECNU1468 题目大意: 给定一个无向连通图,每条边有两个权值w1和w2。定义一条路径是优秀的当且仅当没有别的路径满足两个权值的和都比该路径小,求s到t的优秀路径条数。 思路: 将其中一个权值转化为最短路的一个维度,也就是求出对于同一个结点的不同的w1的和,最小的w 阅读全文
摘要:
题目大意: 给你一棵黑白树,每个点默认是白色,要求支持以下两种操作: 1.改变一个点的颜色; 2.除去连接不同颜色的点的边,求某个点连通块的大小。 思路: 对原树维护两个树链剖分, 一棵维护当点x为白色时,以它为根结点的白色的子树大小; 另一棵维护当点x为黑色时,以它为根结点的黑色的子树大小。(两者 阅读全文
摘要:
OJ题号: BZOJ1588、洛谷3390 题目大意: 给定一个长度为n的数列a,求$\displaystyle{\sum_{i=1}^{n}\min_{1\leq j<i}}(|a_i-a_j|)$。 思路: Splay。 每次插入后将当前结点splay到根结点,然后找出左子树中最大的数和右子树中 阅读全文
摘要:
题目大意: 给你一个数字串s,一个序列范围l和r,(l和r的数字位数为d)求l到r中有多少个数,满足它的长度为d/2的子串,能够在s中被匹配。 思路: 首先将s中每一个长度为d/2的子串插入后缀自动机。 然后数位DP。 f[i][j]中第一维表示当前树与l和r的关系,包含四个状态,用二进制表示,每一 阅读全文
摘要:
题目大意: 给你n个字符串,不同的排列有不同的代价,代价按照如下方式计算(字符串s的位置为x): 1.排在s后面的字符串有s的后缀,则代价为n^2; 2.排在s前面的字符串有s的后缀,且没有排在s后面的s的后缀,则代价为x-y(y为最后一个与s不相等的后缀的位置); 3.s没有后缀,则代价为x。 求 阅读全文