把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

随笔分类 -  做题训练

摘要:一个很妙的思路就是暴力。 考虑什么时候会对答案多 $1$。无非就是某一位 $+1$。 如果没有变化就是 $\times 10$。 我们发现这样做一定可以把所有的情况搞到。 本质上就是一个 01 bfs 求最短路。 阅读全文
posted @ 2025-10-02 20:31 high_skyy 阅读(14) 评论(0) 推荐(0)
摘要:思路跟 [P5770 [JSOI2016] 无界单词](https://www.luogu.com.cn/problem/P5770) 类似,都是一位一位确定的。 我们考虑状态压缩 $dp$。 首先我们枚举第 $i$ 个位置,一遍一遍得出其所要坐的人。 阅读全文
posted @ 2025-09-29 22:33 high_skyy 阅读(10) 评论(0) 推荐(0)
摘要:首先特判 $d=0$ 的情况。 好,对于 $d\geq 1$ 的情况考虑转化。 注意到等差序列满足: - 模 $d$ 同余。 - 值两两不同。 我们先把 $a$ 变为正数,然后全部除以 $d$,这肯定是正确的,你可以想一想。 那么我们就全部转化为了 $d=1$ 的情况。 考虑符合条件的序列 $[l,r]$ 满足什么: - $\max_{i\in[l,r]}a_i-\min_{i\in[l,r]}a_i-1-(r-l+1-2)\leq k$。 - $[l,r]$ 内没有元素重复。 先考虑没有重复的情况:直接记录每个值之前出现最晚的位置。 考虑枚举 $r$,使得最左的 $l$ 满足条件,且 $l\in[x+1,r]$,其中 $x$ 表示 $a_r$ 上次出现的位置。 那么我们只需要使:$\max(l,r)-min(l,r)+l\leq k+r$ 即可。 那么我们如何维护这种东西呢? 注意 $\max,\min$ 用单调栈是好维护的。 阅读全文
posted @ 2025-09-29 16:36 high_skyy 阅读(11) 评论(0) 推荐(0)
摘要:# CF520E Pluses everywhere 题目分析 ## 题目概述 给定一个 $n$ 位的十进制数,可以在数字之间加恰好 $k$ 个 `+`,得到一个式子,求每种方案的这个式子的和。 对 $10^9+7$ 取模,数据范围:$1\leq n\leq 10^5$。 ## 分析 有点意思。 不难想到设 $f_{i,j}$ 表示前 $i$ 个数填 $j$ 个加号的方案和,转移是简单的,考虑在不在前面放 `+` 即可。 但是这不是本题的思路。 像这种求所有的全局的方案,一般考虑每一个位置对于总共答案的贡献是多少。 我们考虑从前往后的第 $i$ 个位置,这个数填在当前分割出来的数的从前往后数第 $j$ 位,显然 $j\leq n - i + 1$。 那么对于当前他的数值方面的贡献为 $a_i\times 10^j$ 阅读全文
posted @ 2025-09-23 21:42 high_skyy 阅读(9) 评论(0) 推荐(0)
摘要:怎么样,很震惊吧,我也是这么认为的。 那么我们更改 $f(a,b)$ 这个值,相当于更改 $g(a,b)$ 的值,又通过更相减损术可以得到其更改 $g(x,y)$ 的值当且仅当 $\gcd(x,y)=\gcd(a,b)$。 通过这个我们发现一个题目的性质,那就是:**我们可以将任意 $f(a,b)$ 的更改以及求贡献都可以算到 $f(\gcd(a,b),\gcd(a,b))$ 中**,在物理中这被光荣地称为**等效替代法**。 阅读全文
posted @ 2025-08-12 22:34 high_skyy 阅读(12) 评论(0) 推荐(0)
摘要:# CF140E New Year Garland 题目分析 挺不错的动态规划题目。 ## 思路 一看到题目便可以知道每一层和层与层之间是要分开来算的(这种类似的动态规划还有很多)。 我们先看看层与层之间的。 ### 层与层 题目要求:**相邻的两层的小球颜色集合不相同**。 那么区分相邻两层小球颜色集合不同可以通过**数量不同来区分**,然后再进行讨论即可。 根据上述,显然地,设 $f_{i,j}$ 表示已经完成前 $i$ 层,到了第 $i$ 层小球颜色集合的数量为 $j$ 的总方案。 我们先抛开重不重复不谈,那么它的总方案肯定是从前面的那一层转移过来,即 $f_{i-1,k}$,其中 $k\in [1,l_{i-1}]$。 那么是不是就是 $$ f_{i,j}=\sum_{k=1}^{l_{i-1}}f_{i-1,k} $$ 呢?显然不是,这里的 $j$ 是数量,并不是选了什么,因此还要有 $C_m^j$ 来确定选 $j$ 种颜色球的方案(这是对于当前 $i$ 的)。 阅读全文
posted @ 2025-03-11 19:17 high_skyy 阅读(19) 评论(0) 推荐(0)
摘要:给一个 $1$ 到 $n$ 的排列 $a$,并且给出点权 $x_i$,并定义: $$ LCA\{b\}=lca(lca(\dots(b_1,b_2),\dots),b_m) $$ 其中 $lca(x,y)$ 表示 $x$ 和 $y$ 的最近公共祖先。 并且给出一颗树。 求: $$ ans=\sum_{i=1}^n\sum_{j=i+1}^nx_{LCA_{i\in[i,j]}\{a_i\}} $$ 像这种比较经典的双 sigma 题目,最最最最暴力的解法是 $\mathcal{O}(n^3)$(先不考虑这里求 $LCA$ 的 $\log$)。 于是就很简单地拿到了此题的 $40$ 分。 那么怎么优化到 $\mathcal{O}(n\log n)$ 呢? 我一般的思路是直接上线段树。 我们这颗线段树(显然维护的是 $dfs$ 序区间)维护两个值,一个是 $cnt$ 代表这段区间内有点作为 $lca$ 的总方案,$sum$ 就是加和实际的数量 $\times x_{lca}$,注意到这里只有在有可能作为 $lca$ 的点上相乘,`pushup` 的时候都是加和(这里的思路比较巧妙)。 阅读全文
posted @ 2025-02-11 11:18 high_skyy 阅读(14) 评论(0) 推荐(0)
摘要:## 评价 一道非常好的思维题目!!! ## 分析 注意到:从三个数选一个中位数。 似乎没有什么好的方法,但是每一层的迭代有一种相似方法。 我们假设一个答案。 将大于等于答案的标记为 $1$,其他的为 $0$。 三——一个非常重要的数,我们要考虑以下: ``` 全是0:000 -> 0 一个1:001 -> 0 两个1:101 -> 1 三个1:111 -> 1 ``` 我们发现得到的答案取决于数量($0$ 多还是 $1$ 多)。 那我们怎么确定他能一直走到尾呢? 注意到: ``` ??? -----> 00? x00zy x00zy ``` 也就是说,两个连续的在一起,能够使得上面也一样(但是要看边界)。 注意到要是中间有连续的(即最靠近中间的一段 $0$ 或者 $1$)说明顶尖就是大于等于数字。 我们发现这样具有单调性,于是乎可以考虑二分答案解决。 然后我们就很好的解决了该问题。 总时间复杂度 $\mathcal{O}(n\log n).$ 阅读全文
posted @ 2025-02-09 12:19 high_skyy 阅读(27) 评论(0) 推荐(0)
摘要:[题目链接](https://www.luogu.com.cn/problem/P6815) ## 分析题目性质 本质上是求三个点组成的环的点权最大值的和。 ## 思路 考虑枚举第一个点 $i$,然后枚举与其相邻的第二个点 $j$,用 $set$ 存储 $i,j$ 相连的点,最后判断得出答案。 我们发现满足答案的满足 $i 阅读全文
posted @ 2024-12-05 19:43 high_skyy 阅读(30) 评论(0) 推荐(0)
摘要:# P2575 高手过招 题目分析 [题目链接](https://www.luogu.com.cn/problem/P2575) ## 分析题目性质 我们发现每个行之间是**互不干预的**,因此可以分开处理。 又注意到:$m\leq 20.$ 我们不难由此想到用**状态压缩**来表示 $SG$ 函数。 于是问题就迎刃而解了。 ## 思路 根据上述我们预处理出 $SG$ 函数,然后对于第 $i$ 个数据的第 $j$ 行对其状态的 $SG$ 值进行异或,判断是否为 $0$ 就能确定答案。 阅读全文
posted @ 2024-11-24 20:54 high_skyy 阅读(47) 评论(0) 推荐(0)
摘要:UVA1482 Playing With Stones 题目分析 [题目链接](https://www.luogu.com.cn/problem/UVA1482) ## 分析题目性质 这是一道博弈论题目,没有比较明显的结论后我们一般采用打表 $SG$ 函数,然后找规律。 ## 思路 经过上述,我们不难得到打表 $SG$ 的代码(由于原本要到 $10^{18}$,但数组存不下,这里只能考虑取样调查 把 $SG(1)=0$ 加进来就是在前面多了一个 $0.$ 我们似乎发现了一些规律: - 对于 $x$ 为偶数,那么它的 $SG(x)=\frac{x}2.$ 把偶数项删掉,得到: ``` 0 1 0 2 1 3 0 ``` 我们发现这和原来的 $SG$ 前 $\frac{len}{2}$ 个是一样的(假设 $len$ 为原本长度)。 阅读全文
posted @ 2024-11-24 20:48 high_skyy 阅读(30) 评论(0) 推荐(0)
摘要:# 整数划分 题目分析以及衍生出来的一系列做法 推荐看[背包计数问题的多项式优化](https://www.cnblogs.com/maple276/p/18342090)。 ## 题目概述 将 $n$ 分为若干个**不同**整数的和,问有多少种方案。 ## 分析题目性质 想一想,注意到是不同整数的和,也就是说我们分成的 $k$ 部满足: $$ k(k+1)\leq 2n $$ 约等一下,$k\leq \sqrt{2n}+1$,即 $k_{\max}=\sqrt{2n}+1.$ 因此可以考虑 $\mathcal{O}(nk)$ 算法。 阅读全文
posted @ 2024-11-18 12:47 high_skyy 阅读(71) 评论(2) 推荐(0)
摘要:[四倍经验](https://www.luogu.com.cn/paste/6zox5x4a) 目前这道题是最基础的,四倍经验里面的 $T_2$ 与此一样,$T_3$ 有点卡空间,但是还好,方案用 `short` 或者 `char` 即可优化,$T_4$ 一样,有些卡常,问题不大。 ## 分析题目性质 没有什么十分有用的性质。 ## 思路 注意到:分配干活的只有 $3$ 个人。 看到这么小的数很容易想到三维或者四维 $dp$ 或者是 状态压缩 $dp$,很显然是前者。 设 $f_{i,a_1,a_2,a_3}$ 表示第 $i$ 个请求后,三个人的位置分别为 $a_1,a_2,a_3$ 的最小成本。 转移是简单的,不过多赘述。 阅读全文
posted @ 2024-11-14 19:03 high_skyy 阅读(39) 评论(0) 推荐(0)
摘要:观察题目,可以发现的是一个凸多边形一定满足: - 每一行的左端点列号先递减后递增。 - 每一行的右端点列号先递增后递减。 根据上述,我们需要关注以下的信息: - 当前的左端点。 - 当前的右端点。 - 这一行以左端点开始连续选多少个。 - 当前左端点列号需要满足的单调性。 - 当前右端点列号需要满足的单调性。 显然的,右端点、左端点和选的格子数知道两个就可确定第三个的值。 因此我们设:$f_{i,j,l,r,0/1,0/1}$ 表示前 $i$ 行已经处理完毕加上第 $i$ 行有 $j$ 个格子,第 $i$ 行选择第 $l$ 到 $r$ 的格子,且左端点、右端点列号满足现在该有的单调性的最大价值(其中 $0$ 表示递减,$1$ 表示递增)。 阅读全文
posted @ 2024-11-12 22:08 high_skyy 阅读(28) 评论(0) 推荐(0)
摘要:P2893 [USACO08FEB] Making the Grade G 题目分析 [题目链接](https://www.luogu.com.cn/problem/P2893) ## 分析题目性质 不难解析出题目中的序列 $B$ 有“单调不下降”和“单调不上升”两种情况,不难想到分两种情况讨论答案即可。 有一个性质: > 在满足答案最小化的情况,一定存在一种方案使得 $B$ 中的数字一定在 $A$ 中。 不难证明其方案是不劣于不在 $A$ 中的数的。 而根据性质,$j$ 可以用离散化解决,也可以设为 $A_j$。 因此,总时间复杂度 $\mathcal{O}(n^2)$ 的。 **注意,因为要求单调,所以一定要对离散过的 $A$ 进行排序,否则就有可能不单调。** 不难完成对 $cost(j+1,i-1)$ 的计算,即只需要计算什么时候前面与 $A_j$ 相同,后面与 $A_i$ 相同,使答案最小。 扫一遍即可,总时间复杂度 $\mathcal{O}(n^3)$,无法通过本题。 阅读全文
posted @ 2024-11-10 20:01 high_skyy 阅读(75) 评论(0) 推荐(0)
摘要:# P10954 LCIS 题目解析 [题目链接](https://www.luogu.com.cn/problem/P10954) ## 思路 前置:[弱化版](https://www.luogu.com.cn/problem/CF10D) 没什么好说的,设 $f_{i,j}$ 表示 $a$ 的前 $i$ 个并且结尾为 $b_j$ 的最长上升公共子序列。 定义 $a_0=b_0=-\infty.$ 转移: - $a_i=b_j,f_{i,j}=\max_{k\in [0,j-1]\text{ 且 }b_k < a_i} f_{i-1,k}.$ - 否则,$f_{i,j}=f_{i-1,j}.$ 我们发现直接过掉了,但这样的时间复杂度是 $\mathcal{O}(n^3)$ 的。 考虑免去一些重复的取 $\max$ 值。 阅读全文
posted @ 2024-11-07 22:50 high_skyy 阅读(23) 评论(0) 推荐(0)
摘要:SP15637 GNYR04H - Mr Youngs Picture Permutations 解析 [题目链接](https://www.luogu.com.cn/problem/SP15637) ## 分析题目性质 大意就是给 $k$ 排然后每个数列单调,每个横列单调,求满足这样排列的方案数。 我们发现:与其为每个位置分配某个学生不如考虑**将每个学生分给某个位置**。 ## 思路 根据以上,不妨设:$f_{a_1,a_2,a_3,a_4,a_5}$ 分别代表第 $i$ 排现在人数为 $a_i$ 的方案数。 那么应该满足以下条件: - $a_i < N_i$ - $i=1$ 或者 $a_{i-1} 阅读全文
posted @ 2024-11-07 22:16 high_skyy 阅读(177) 评论(0) 推荐(0)

浏览器标题切换
浏览器标题切换end