摘要:
题目分析: 做三个指针然后预处理阶乘就行。 题目代码: 阅读全文
摘要:
题目分析: 解决了上次提到的《切树游戏》后,这道题就是一道模板题。 注意我们需要用堆维护子重链的最大值。这样不会使得复杂度变坏,因为每个重链我们只考虑一个点。 时间复杂度$O(nlog^2n)$ 代码: 阅读全文
摘要:
题目分析: 好题。本来是一道好的非套路题,但是不凑巧的是当年有一位国家集训队员正好介绍了这个算法。 首先考虑静态的情况。这个的DP方程非常容易写出来。 接着可以注意到对于异或结果的计数可以看成一个FWT的过程,进一步地可以注意到FWT在中途没有还原的必要。从FWT的过程中我们可以发现FWT具有可加性 阅读全文
摘要:
分析: 化简一下就行了,注意一下平方和公式的运用以及精度的误差。 代码: 阅读全文
摘要:
我很喜欢这道题。 题目大意: 给出一棵带点权树。对每个询问$ u,v,x $,求$\prod_{i \in P(u,v)}gcd(ai,x)$。其中$ P(u,v) $表示$ u $到$ v $的路径。 题目分析: 注意到权值大小不会超过$ 10^7 $,这似乎是在提示我们进行线性筛和质因数分解。我 阅读全文
摘要:
题目分析: 首先思考一个二分答案的做法。我们可以注意到答案具有单调性,所以可以二分答案。 假设当前二分的答案是$ k $。那么按照大小顺序插入每个区间,同时在末端删除会对答案产生影响的区间。这里不妨用线段树维护。这个做法在外国好像叫做two pointers。 如果某个时刻,线段树中有点大于等于$ 阅读全文
摘要:
题目分析: 裸题。怀疑$ O(n^4log{n}) $跑不过,考虑Edmonds-Karp优化。 代码: 阅读全文
摘要:
题目大意: 一张$ m $个编号互异点图,最大不超过$ 2^n $,若两个编号位与为0则连边,问连通块数量。 题目分析: 考虑怎样的两个点会连边。这种说法对于A和B两个点来说,就相当于B在A的0的子集中。我们不妨将A的0用1填充,得到的每一个数取反都是可以与A连边的点,然后这个取反前的数也可以继续填 阅读全文
摘要:
题目分析: 比较有意思,但是套路的数学题。 题目要求$ \prod_{i=1}^{n} \prod_{j=1}^{m}Fib(gcd(i,j)) $. 注意到$ gcd(i,j) $有大量重复,采用莫比乌斯反演。可以写成: $ \prod_{i=1}^{min(n,m)}Fib(i)^{\sum_{ 阅读全文
摘要:
题目分析: 操作一很明显等价于LCT上的access操作,操作二是常识,操作三转化到dfs序上求最大值也是常识。access的时候顺便在线段树中把对应部分-1,把右子树的子树+1即可。 代码: 阅读全文