08 2022 档案

摘要:前言 题目传送门! 更好的阅读体验? 感觉挺不错的一道图论转化题。(其实也和图论关系不大。) 思路 对于每个条件 $a_u \mid a_v = x$,二进制拆掉 $x$。如果 $x$ 的二进制位 $j$ 是 $1$,说明 $a_u$ 和 $a_v$ 中,当前位也肯定有至少一个为 $1$。标记一下 阅读全文
posted @ 2022-08-27 13:20 liangbowen 阅读(25) 评论(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 阅读(29) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 简单的数学题。 思路 每次只变一个数,因此考虑在短时间内计算:每个位置的数产生的贡献。 容易发现以下的条件: 不管 $a_i$ 是什么,当它作为一个子串的首项时,块数一定会加一。共有 $(n - i + 1)$ 个串的首项是 $a_i$。 如果 $a_i \ne 阅读全文
posted @ 2022-08-27 13:18 liangbowen 阅读(50) 评论(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 阅读(37) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 赛时瞎胡了个结论,然后就过了。 思路 Megan 从左下角到右上角,至少也得要 $(n + m - 1)$ 步。于是考虑让 Stanley 少走几步。 如图,容易看出他最少走 $\min(n - 1, m - 1)$ 步。 答案就是 $n + m - 1 + \ 阅读全文
posted @ 2022-08-27 13:17 liangbowen 阅读(26) 评论(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 阅读(24) 评论(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 阅读(26) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 赛时锁题后看别人代码,怎么都和我想法不一样?幸好没有被 hack。 思路 以下把 L 字形的覆盖网格,直接称为 L。 贪心思考,我们想让每次 L 覆盖的 $1$ 的数量少一些。 手玩一遍样例,我们发现:第一次 L 可能会覆盖多几个 $1$,之后每次必定可以只覆盖 阅读全文
posted @ 2022-08-27 13:16 liangbowen 阅读(26) 评论(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 阅读(28) 评论(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 阅读(26) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 普及组月赛第二题。特殊数据好恶心啊,考试差点丢分了。 思路 贪心题,先给 $a$ 数组排个序。 首先,肯定是买小于等于 $w$ 的最大价格的物品。如果买不到,直接输出 $0$。 上面一点可以使用二分实现,速度快一点(直接用 STL 就行)。 然后,按价格从小到大 阅读全文
posted @ 2022-08-27 13:13 liangbowen 阅读(35) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 校内考试题目。写一篇题解。 思路 首先记录每个字符出现了多少次,然后创建单调栈。 看当前字符是否入栈,如果没有入栈,就不停 pop(),直到: 栈空了。 栈顶字典序大于当前字符。 栈顶元素已经被删掉了(因为栈外面用 cnt[i] 记录了每个数的次数)。 满足单调 阅读全文
posted @ 2022-08-27 13:13 liangbowen 阅读(22) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 校内比赛题。赶紧补篇题解。 思路 经典的二分加搜索。 由于 \(h_{i, j}\) 范围很小,考虑二分答案。 二分答案的范围应该是 \([0, 110]\)。 对于 \(\texttt{check()}\) 函数,可以暴力枚举所有差为 \(\texttt{mi 阅读全文
posted @ 2022-08-26 02:03 liangbowen 阅读(19) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 本题是简单的双端队列练手题。 思路 题意大致如下: 执行双端队列 push_front() 操作。 执行双端队列 push_back() 操作。 查询 $\min{mp_x - L, R - mp_x}$,其中 $mp_x$ 表示 $x$ 元素的对应下标。 由于 阅读全文
posted @ 2022-08-26 02:03 liangbowen 阅读(24) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 比赛时考到了这一题,于是写一篇题解纪念一下。 思路 设 $dp_{i, j}$ 表示前 $i$ 张钞票分给两人,两人差尽可能接近 $j$ 的情况下,获得的总钱数。此时不考虑赌场操作。 显然可以分三种情况讨论: 不用第 $i$ 张钞票:即 $dp_{i-1, j} 阅读全文
posted @ 2022-08-26 02:01 liangbowen 阅读(26) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 这题题解都写得特别复杂,蒟蒻看不懂。因此,我补一篇简单的贪心题解。 思路 题目等同于求最小的 $p$ 使得 $f(p)>n$,则 $(p-1)$ 就是答案。 若 $f(p) > n$,首先要保证 $p$ 的位数大于等于 $n$ 的位数。根据贪心思想,我们让末尾不 阅读全文
posted @ 2022-08-26 02:01 liangbowen 阅读(29) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 普及组月赛第一题。别的题解语言有点高深,我补篇题解。 思路 显然,$\lfloor \dfrac{l}{x}\rfloor, \lfloor \dfrac{l+1}{x}\rfloor, \cdots, \lfloor \dfrac{r}{x}\rfloor$ 阅读全文
posted @ 2022-08-26 02:01 liangbowen 阅读(111) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 本题是练习 bfs 的好题。 思路 结合代码进行思路讲解。 首先是读入部分,我们可以用 bool 存下地图,节省空间开销。 需要注意,数据比较烂,起始点可能有障碍。 我们可以霸气地把起始点的障碍消掉。 const int N = 1005; bool a[N][ 阅读全文
posted @ 2022-08-26 02:00 liangbowen 阅读(28) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 这一题内部比赛时考到了,个人觉得是一道二分答案好题。 本题时间很宽松,导致 $O(n \log^2 n)$ 的代码可以跑过去。 但是,我内部比赛的时限是 $1$ 秒,这就导致需要 $O(n \log n)$ 的代码了。 思路一 显然是一道二分答案题目。 二分答案 阅读全文
posted @ 2022-08-26 01:59 liangbowen 阅读(23) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 这是一道简单的字符串练手题。 思路 每次暴力计数,是否为元音。最后判断是否满足题意即可。 重点是字符串读入问题。 由于字符串读入部分含有空格,因此使用 getline(cin, str) 读入,其中 $\texttt{str}$ 是字符串。 我们把 getlin 阅读全文
posted @ 2022-08-26 01:59 liangbowen 阅读(22) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 本次比赛第二题,好像没有人抢题解,那我来一发。 思路还是挺巧妙的。 $\texttt{10 pts}$ 思路 深搜求解即可。 最坏情况,时间复杂度 $O(n!)$。 #include <iostream> #include <cstdio> using name 阅读全文
posted @ 2022-08-26 01:58 liangbowen 阅读(27) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 这题显然没有蓝的难度。 其他题解代码不好看,而且没有讲清楚,那我补一发吧。 题目简述 有两个数 $a$,$b$,每次操作可以给 $a$ 或 $b$ 除以 $2$,$3$,$5$。 问最少操作数使得 $a = b$。无解输出 $-1$。 思路 设最后,两数都需要等 阅读全文
posted @ 2022-08-26 01:57 liangbowen 阅读(26) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 这题是一道挺好的 $\texttt{dp}$ 题啊,但大家的题解都写得不够详细。 所以,我来补一篇 $\LaTeX$ 题解,希望能帮助大家。 思路 首先是读入,为了方便,我让字符串下标从 $1$ 开始。 string a; int n; //字符串长度。 voi 阅读全文
posted @ 2022-08-26 01:56 liangbowen 阅读(26) 评论(0) 推荐(0)
摘要:前言 题目传送门! 更好的阅读体验? 这题是常规的二分答案。 前置知识:二分答案 教大家一个小技巧:如何判断一题是否可以使用二分答案,以及如何编写程序? 设计 $f(x)$ 函数,确认其是否满足单调性。 如果不满足单调性,可能是 $f(x)$ 函数设计错了,但更有可能是本题无法使用二分答案。 在给定 阅读全文
posted @ 2022-08-26 01:55 liangbowen 阅读(25) 评论(0) 推荐(0)
摘要:前言 题目传送门! 或许更好的阅读体验? 这题算是一道中模拟? 码量不会很高,大概只有 \(100\) 至 \(150\) 行。 思路 输入地图。 注意,还不能读入蛇的行动指令,因为我们不知道有几条蛇。 使用广搜得出每条蛇的信息。 这个就是搜连通块,惟一不同的是,要使用队列存下这条蛇。 写一个死亡函 阅读全文
posted @ 2022-08-26 01:52 liangbowen 阅读(26) 评论(0) 推荐(0)
摘要:### 前言 题目传送门 $\color{red}{see}\space \color{green}{in}\space \color{blue}{my}\space \color{purple}{blog}$ 这题作为本次比赛的 T1,难度感觉还行,算是一道结论题。 已经尽量讲得简单一些,没有用复 阅读全文
posted @ 2022-08-26 01:52 liangbowen 阅读(31) 评论(0) 推荐(0)
摘要:### 前言 题目传送门 \(\color{red}{see}\space \color{green}{in}\space \color{blue}{my}\space \color{purple}{blog}\) 在学校比赛时遇到了这一题,写一篇题解纪念一下。 本题是最短路好题。 思路 此题明显是 阅读全文
posted @ 2022-08-26 01:51 liangbowen 阅读(21) 评论(0) 推荐(0)
摘要:题目传送门! 更好的阅读体验? 这题显然可以使用贪心的思想解决。 由于头和尾一定不用更改,所以只需从 \(a_2\) 枚举到 \(a_{n-1}\)。 贪心原则下,我们更改的数应该要与相邻的数相等。 按照上面的原则,如果你更改了 \(a_i\),则下一个可能需要更改的数至少是 \(a_{i+2}\) 阅读全文
posted @ 2022-08-26 01:41 liangbowen 阅读(19) 评论(0) 推荐(0)