摘要: 前言 题目传送门! 更好的阅读体验? 感觉挺不错的一道图论转化题。(其实也和图论关系不大。) 思路 对于每个条件 $a_u \mid a_v = x$,二进制拆掉 $x$。如果 $x$ 的二进制位 $j$ 是 $1$,说明 $a_u$ 和 $a_v$ 中,当前位也肯定有至少一个为 $1$。标记一下 阅读全文
posted @ 2022-08-27 13:20 liangbowen 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 看起来挺难,其实一分钟就能想出来。 思路 首先考虑什么时候无解。由于 $k \times \left\lfloor\dfrac{a}{k}\right\rfloor \le a \le \left\lfloor\dfrac{a}{k}\right\rfloor 阅读全文
posted @ 2022-08-27 13:19 liangbowen 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 简单的数学题。 思路 每次只变一个数,因此考虑在短时间内计算:每个位置的数产生的贡献。 容易发现以下的条件: 不管 $a_i$ 是什么,当它作为一个子串的首项时,块数一定会加一。共有 $(n - i + 1)$ 个串的首项是 $a_i$。 如果 $a_i \ne 阅读全文
posted @ 2022-08-27 13:18 liangbowen 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 感觉 D1 和 D2 不是同一个难度档次的呀...... 思路 设 $a_j\oplus i < a_i \oplus j$,这意味着数字 $a_j\oplus i$ 中,从个位起前 $k$ 位和 $a_i \oplus j$ 相同,之后第 $k+1$ 位就不同 阅读全文
posted @ 2022-08-27 13:17 liangbowen 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 赛时瞎胡了个结论,然后就过了。 思路 Megan 从左下角到右上角,至少也得要 $(n + m - 1)$ 步。于是考虑让 Stanley 少走几步。 如图,容易看出他最少走 $\min(n - 1, m - 1)$ 步。 答案就是 $n + m - 1 + \ 阅读全文
posted @ 2022-08-27 13:17 liangbowen 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 做法:ST 表加尺取。 思路 看到同余,立刻想到作差。我们建立差分数组 $c_i = |a_i - a_{i-1}|$,注意取了绝对值。 此时,我们只需在 $c_i$ 中寻找最长区间 $\left[l, r\right]$,使得 $\gcd(c_l, c_{l+ 阅读全文
posted @ 2022-08-27 13:16 liangbowen 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 有点思维难度的 DP 优化题。 小知识 在做这道题之前,你需要知道:$x - y, y - x \le x \oplus y \le x + y$。 证明非常简单,利用异或的性质即可。 思路 容易想到类似 LIS 的东西。设 $dp_i$ 表示以 $i$ 下标元 阅读全文
posted @ 2022-08-27 13:16 liangbowen 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 赛时锁题后看别人代码,怎么都和我想法不一样?幸好没有被 hack。 思路 以下把 L 字形的覆盖网格,直接称为 L。 贪心思考,我们想让每次 L 覆盖的 $1$ 的数量少一些。 手玩一遍样例,我们发现:第一次 L 可能会覆盖多几个 $1$,之后每次必定可以只覆盖 阅读全文
posted @ 2022-08-27 13:16 liangbowen 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 比赛时,这题写了一个 $O(n^3)$ 算法,然后就过了。 以为是数据水,实际上可以证明时间复杂度是 $O(n)$ 的。 思路 关键是一个结论:当 $i < j < k$ 时,若 $a_i, a_j, a_k$ 单调不降或单调不升,则三元组 $(a_i, i), 阅读全文
posted @ 2022-08-27 13:14 liangbowen 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 和官方题解稍有不一样。貌似代码更好理解? 思路 我们假设 $a$ 乘上 $x$,$b$ 乘上 $y$,就能相等,即 $\dfrac{ax}{by} = \dfrac{c}{d}$。 化简:$axd = byc$。也就是 $x \cdot(ad) = y \cdo 阅读全文
posted @ 2022-08-27 13:14 liangbowen 阅读(14) 评论(0) 推荐(0) 编辑
摘要: rt,其实是用来方便自己学莫比乌斯反演的......像 $\sum$ 这种东西干嘛要加,反正是给我自己看看的...... $\varphi(n)$:$\sum\limits_{i=1}^{n-1}\left[gcd(n, i) = 1\right]$ $\tau(n)$:$n$ 的约数个数。 $\s 阅读全文
posted @ 2022-08-27 13:13 liangbowen 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 普及组月赛第二题。特殊数据好恶心啊,考试差点丢分了。 思路 贪心题,先给 $a$ 数组排个序。 首先,肯定是买小于等于 $w$ 的最大价格的物品。如果买不到,直接输出 $0$。 上面一点可以使用二分实现,速度快一点(直接用 STL 就行)。 然后,按价格从小到大 阅读全文
posted @ 2022-08-27 13:13 liangbowen 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 前言 题目传送门! 更好的阅读体验? 校内考试题目。写一篇题解。 思路 首先记录每个字符出现了多少次,然后创建单调栈。 看当前字符是否入栈,如果没有入栈,就不停 pop(),直到: 栈空了。 栈顶字典序大于当前字符。 栈顶元素已经被删掉了(因为栈外面用 cnt[i] 记录了每个数的次数)。 满足单调 阅读全文
posted @ 2022-08-27 13:13 liangbowen 阅读(14) 评论(0) 推荐(0) 编辑