随笔分类 -  做题记录

摘要:AtCoder 传送门 洛谷传送门 一眼。 将 $a$ 中每个数用前导零补到 $6$ 位,题目相当于问所有 $i,j$,$a_i$ 的每一位加 $a_j$ 的这一位都不超过 $9$ 的 $(i,j)$ 对数。 直接高维前缀和统计即可,时间复杂度 $O(n + 10^6)$。 code /* p_b_ 阅读全文
posted @ 2022-11-02 21:51 zltzlt 阅读(52) 评论(0) 推荐(0)
摘要:[AtCoder 传送门](https://atcoder.jp/contests/abc263/tasks/abc263_g "AtCoder 传送门") [洛谷传送门](https://www.luogu.com.cn/problem/AT_abc263_g "洛谷传送门") ## 题意 有 $ 阅读全文
posted @ 2022-10-22 19:43 zltzlt 阅读(54) 评论(0) 推荐(0)
摘要:洛谷传送门 好题,吹爆 JRKSJ! 考虑朴素的 $O(n \log V)$ 做法。枚举第 $i$ 位,需要计算所有极长连续的全 $0$ 区间长度,答案为 $\sum\limits_{i=0}^{63} 2^i \times (\frac{n(n+1)}{2} - \sum\frac{len(len 阅读全文
posted @ 2022-10-11 17:18 zltzlt 阅读(104) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 不错的根号分治练习题。 考虑枚举公差 $k$,题目就转化成了求 $a_i - i \times k$ 相等的数的最大值。 考虑根号分治。 当 $|k| \le \sqrt{10^5}$,显然可以暴力枚举,开桶记录。 当 $|k| > \sqrt{10^5}$,对于一个 $i 阅读全文
posted @ 2022-10-06 22:33 zltzlt 阅读(46) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 考虑朴素 dp:设 $f_{i,j}$ 表示分了 $j$ 段且第 $j$ 段的末尾是 $i$ 的最小花费。 有转移:$f_{i,j} \gets \min\limits_{k=0}^{i-1} f_{k,j-1} + cost(k+1,i)$,其中 $cost(l,r)$ 阅读全文
posted @ 2022-10-04 21:35 zltzlt 阅读(54) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 小清新动态开点线段树优化 dp 题。 首先题目中的 if 嵌套看起来就很烦,可以考虑建树,外面再套一层大的 if 0 ... end,这样就将本题转化成一个树上问题。 考虑树形 dp。设 $f_{u,i}$ 表示 从结点 $u$ 出来时,$x$ 的值是 $i$ 的最少花费。 阅读全文
posted @ 2022-10-04 07:55 zltzlt 阅读(42) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 考虑按边权从小到大和从大到小排序,建两棵 $\mathrm{Kruskal}$ 重构树。根据 $\min$ 和 $\max$ 倍增到相应的祖先结点,问题就转化成了两棵子树交。记 $a,b$ 分别为两棵树的 $\mathrm{dfs}$ 序,则问题为满足 $i \in [l_1,r_ 阅读全文
posted @ 2022-07-28 21:16 zltzlt 阅读(51) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 路径最值想到 $\mathrm{Kruskal}$ 重构树,则求最大权值就是求 $\mathrm{LCA}$ 的点权。 多个点的 $\mathrm{LCA}$ 就是 $\mathrm{dfs}$ 序最小和 $\mathrm{dfs}$ 序最大的点的 $\mathrm{ 阅读全文
posted @ 2022-07-28 21:08 zltzlt 阅读(37) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 考虑离线,按时间倒序进行操作,删边变成加边。 然而若按时间倒序进行操作,就不知道哪些点已经 $p_u = 0$ 了。. 可以按加边的顺序建出 $\mathrm{Kruskal}$ 重构树。则可以倍增找到在 $t$ 时刻连通的祖先,它的所有叶子子结点即为在 $t$ 时刻 阅读全文
posted @ 2022-07-28 21:04 zltzlt 阅读(45) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 考虑将每条边的编号作为边权,然后建 $\mathrm{Kruskal}$ 重构树。 那么每个询问的答案即为 $\mathrm{LCA}(l,l+1,...,r-1,r)$。 有一个经典套路,就是多个点的 $\mathrm{LCA}$ 就是 $\mathrm{dfs}$ 阅读全文
posted @ 2022-07-28 20:55 zltzlt 阅读(38) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 令 $1$ 为根,并设 $d_u$ 为 $1$ 到 $u$ 的路径上经过的点的异或和,则 $u,v$ 两点路径经过点的异或和可以转化成 $d_u \oplus d_v \oplus a_{\mathrm{lca}(u,v)}$。 因为题目没有限制,所以可以将点权修改为 阅读全文
posted @ 2022-07-27 21:11 zltzlt 阅读(113) 评论(0) 推荐(0)
摘要:洛谷传送门 POJ 传送门 一眼点分治。 当递归到结点 $u$ 时,计算出子结点 $v$ 的子树内,所有结点和 $u$ 的距离。然后与之前的合并并计算答案即可。使用树状数组,时间复杂度 $O(n \log n \log k)$,空间复杂度 $O(n + k)$。 code /* p_b_p_b tx 阅读全文
posted @ 2022-07-26 20:20 zltzlt 阅读(60) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 考虑将图往左压正,就得到了一个直角三角形的图。 在这个图中,如果没有斜边,则任意时刻走的向下的边都要 $\ge$ 向右的边。这一部分就是 [SCOI2010] 生成字符串 了。 现在有斜边,考虑枚举走斜边的次数,设 $u_i$ 为第 $r$ 行第 $c$ 列的点,走斜边的次数为 $ 阅读全文
posted @ 2022-07-21 21:00 zltzlt 阅读(91) 评论(0) 推荐(0)
摘要:洛谷传送门 CodeForces 传送门 一道不错的博弈论。 思路 此题的关键性质在于:一方可以重复另一方上一次的操作从而使得局面不变。 因此有结论:先手必胜当且仅当先手第一步就取胜,后手必胜当且仅当先手无法在第一步就取胜且无论先手如何操作后手都能一步胜利。 可以这么理解。若先手第一步无法取胜,后手 阅读全文
posted @ 2022-07-21 19:53 zltzlt 阅读(48) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 看到询问次数是 $O(\log n)$ 级别的,考虑使用树剖的一些性质。 我们都知道一个点到根结点的链经过的轻边为 $O(\log n)$ 级别的。于是考虑如下的算法: 先通过一次询问得出 $x$ 的深度,然后树剖。 一开始设 $u \to 1$。沿着重链跳到和 $x 阅读全文
posted @ 2022-07-21 16:35 zltzlt 阅读(49) 评论(0) 推荐(0)
摘要:AtCoder 传送门 思路 对于一个奇数 $x$,能到达它的最大且比它小的数为 $x - f(x)$,它能到达的最小且比它大的数为 $x + f(x)$。因此奇数 $x$ 对于区间 $[x - f(x) + 1, x + f(x) - 1]$ 都是没有连边的。 考虑两个数 $x,y\ (x < y 阅读全文
posted @ 2022-07-21 16:28 zltzlt 阅读(130) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 考虑数列是一个排列怎么做。 套路地,设一个数组 $b_i$ 表示 $i$ 在排列出现的位置,即 $a_{b_i} = i$。则题中交换逆序对的位置就转化成了交换逆序对的值(因为若 $i < j$ 且 $b_i > b_j$ 则 $a_{b_j} > a_{b_i}$) 阅读全文
posted @ 2022-07-21 14:26 zltzlt 阅读(87) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 又是一道小清新构造题。 思路 显然若 $n$ 为合数(除了 $4$,因为 $4$ 可以构造出 $[1,3,2,4]$)则无解,因为一定存在 $x > 1,y > 1,x \ne y$ 且 $xy \equiv 0 \pmod{n}$,而 $n$ 一定要放在排列最后一位使得前 阅读全文
posted @ 2022-07-21 10:33 zltzlt 阅读(36) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 萌萌交互题。 思路 考虑每次询问两个叶子的 $\mathrm{LCA}$,若 $\mathrm{LCA}$ 为两个叶子之一,那么 $\mathrm{LCA}$ 必为根。 每次询问后需要加进来新的叶子。 若询问 $\left\lfloor\dfrac{n}{2}\right\ 阅读全文
posted @ 2022-07-21 09:14 zltzlt 阅读(36) 评论(0) 推荐(0)
摘要:洛谷传送门 AtCoder 传送门 思路 考虑正向进行操作并且维护当前棋子能到达的行区间 $[up,down]$ 和列区间 $[left,right]$。则先手每次将区间往外扩展一格,而后手每次尽可能将区间往内缩小。当某一时刻先手执行完操作后区间的最左端或最右端不在棋盘上了,那么输出 NO。执行完所 阅读全文
posted @ 2022-07-21 08:01 zltzlt 阅读(35) 评论(0) 推荐(0)