摘要:
BZOJ 1001…… 并不会这个trick,所以笔记要详细一点。 前置知识 : 平面图转对偶图 传送门 听说直接$Dinic$就好了,还跑得比正解快…… 首先我们按照平面图的定义,把网格图中所有的平面以及另加的起点和终点在新图中标号,一共有$(n - 1) * (m - 1) * 2 + 2$个点 阅读全文
摘要:
BZOJ 4552 挺妙的解法。 听说这题直接用一个桶能拿到$80 \ pts$ 发现如果是一个排列的话,要对这个序列排序并不好做,但是假如是$01$序列的话,要对一个区间排序还是很简单的。 发现最后的询问其实只有一个,所以我们考虑二分这个答案(其实感觉在这题中答案的单调性并不是很明显),每一次二分 阅读全文
摘要:
次短路计数。 类似于最短路计数 + 次短路,在跑最短路的时候同时维护最短路,次短路,最短路的条数,次短路的条数,每一次更新在权值相同的地方计数。 要把(点,最/次短路)的二元组压成一个状态,每一次取出一个状态去扩展,一共有$4$种情况,具体实现可以参照代码。 $dij$或者$spfa$实现均可,这题 阅读全文
摘要:
BZOJ 2286 传说中的虚树经典题。 放上我觉得讲的很好的Luogu置顶题解。 传送门 首先考虑一个暴力的$dp$,设$f_x$表示切断$x$的子树中的所有特殊点且保留$x$的最小代价和,$mn_x$表示$x$到根的路径上最小的一条边的权值。 边界:搜一遍预处理$mn$,对于所有的特殊点$x$, 阅读全文
摘要:
你谷又乱评分…… 首先发现答案只有可能是从$1$开始走到$n$,中间绕若干个环,然后使它取到的异或值最大。 这样子的话我们可以随便先取一条路径,强制选择走这条路径,然后把所有的环都丢进线性基里面去,因为如果要选择一个环,我们从路径中的一个点走出去然后在这个环上绕几圈然后走回来,发现中间这个“走出去” 阅读全文
摘要:
昨晚的比赛题。(像我这种蒟蒻只能打打div2) 题意 给你$n$个物品,每一个物品$i$,有一个权值$w_i$和一个位置$a_i$,定义移动一个物品$i$到位置$t$的代价为$w_i * \left |a_i - t \right |$,要求你写一个数据结构支持以下两种操作: 1、修改一个物品的权值 阅读全文
摘要:
BZOJ 4568。 感觉很板。 前置技能:线性基。 放一篇感觉讲的比较丰富的博客: 戳这里。 首先要求在一个序列中任意选点使得异或和最大,当然是想到线性基了。 把问题转换到树上,如果每次询问的序列是两点之间的路径,也就是说我们只要提取出树上一条路径的线性基就可以了吧。 发现线性基满足可以快速合并这 阅读全文
摘要:
BZOJ 4890。 在树上断开一条边之后会形成两个联通块,如果要使这一条边接回去之后保持一棵树的形态,那么必须在两个联通块之间各找一个点连接。 那么,对于每一条可能断开的边,它产生的答案是以下两者的最大值: 1、其中一个联通块的直径 2、两个联通块中从一个点出发最短的最长距离之和再加上这一条边的权 阅读全文
摘要:
原题是CF79D Password 很妙的题。 首先我们发现区间操作不太好弄,我们想办法把它转化成单点操作,这样子处理的办法会多一点。 方法当然是差分了。 定义差分数组$b_i = a_i \^ a_{i + 1}$($b_i$的下标从$0$开始),在这里将$\^$记为异或。 那么$a_i = b_ 阅读全文
摘要:
题意是求: $\sum_{i = 1}^{n}lcm(i, n)$ $= \sum_{i = 1}^{n}\frac{ni}{gcd(i, n)}$ $= n\sum_{i = 1}^{n}\frac{i}{gcd(i, n)}$ $= n\sum_{d|n}\sum_{i = 1}^{n}d*[g 阅读全文