
洛谷
文章平均质量分 84
风中的微尘
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P3147 [USACO16OPEN]262144 P——解题报告
,问序列中出现的最大数字的值最大是多少。合并后的数值并非加倍而是。来说,如果能够将它们全部合并,那么最终的合并结果一定是。的最大值,设置区间长度从小到大进行状态转移。至此我们仍有一个很关键的信息没有利用上,那就是。首先这道题目一眼看过去,很明显是一个区间。我们首先分析一下合并的结果,对于区间。的题目,而且状态转移方程很容易想。,每次可以合并相邻两个(数值范围。显然是不能的,所以对于合并结果。这个奇怪的数据范围。,所以最终的答案不会超过。那么复杂度显然不如遍历。此方案的时间复杂度为。的合并最大值是否能为。原创 2023-01-09 16:37:11 · 633 阅读 · 0 评论 -
P1013 [NOIP1998 提高组] 进制位——解题报告
题目链接:https://www.luogu.org/problemnew/show/P1013#sub 题目大意:给出了一张加法表,表中的字母代表数字。给出一个方案,包含是k进制,每个字母所代表的数字。 题目分析:首先我们明确几个问题。 一:本题加法表的第一行和第一列都是一个字母,而且各不相同,那么很明显进制至少为n-1进制,因为有n-1个字母。 二:因为两个一位数字相加最多会有两位,而...原创 2018-08-28 22:01:46 · 388 阅读 · 1 评论 -
P1019 [NOIP2000 提高组] 单词接龙—解题报告
个单词,并给出一个字符作为“头”,要求求出以“头”作为起始字符能够拼接出的字符串的最大长度,每一个单词最多使用两次。两个单词能够拼接当且仅当单词①的前缀等于单词②的后缀,则最后两个相同部分和为一个。因为涉及到两个单词的前后缀匹配问题,为了防止每次都去暴力寻找两个单词前后缀的匹配情况,我们可以先。,所以预处理结束之后我们就可以利用预处理出的结果进行搜索。因为没有明显的分层情况,无法使用。如果出现一个单词没有别的单词的前缀能与之匹配,则代表到了搜索终点,记录答案的最大值即可。,单词长度未给出,但不超过。原创 2021-05-17 15:13:51 · 481 阅读 · 0 评论 -
P1031 [NOIP2002 提高组] 均分纸牌——解题报告
题目链接:https://www.luogu.com.cn/problem/P1031题目大意:有N堆纸牌,每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若干张纸牌,然后移动。在第1堆上取的纸牌,只能移到第2堆上;在第N堆上取的纸牌,只能移到N−1堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。题目分析:1.因为第1堆只能从第2堆处得到满足。2当第1堆满足后,第1堆就对后续答案无贡献,可以删除了。3.此时第2堆成了剩下的牌堆原创 2020-09-15 20:56:09 · 402 阅读 · 0 评论 -
P1043 [NOIP2003 普及组] 数字游戏——解题报告
首先对于环状的题目首先想到的就是将环状的转化为线性的,这也将大大简化我们解题的过程。因为我们把环变成了一个数段,所以可以直接枚举起点和终点。个部分的情况不影响第x组的结果,所以很容易想到用动态规划的方法来保存前。数组记录的是前缀和(这是一个很容易想到的优化)。个部分,各部分内的数字相加,相加所得的。的原因是所有的结果都会在长度为。取模后再相乘,最终得到一个数。的区间完成,而最远的点就是。个),按顺序将其分为。:最大值还是最小值。原创 2020-09-27 19:14:03 · 509 阅读 · 0 评论 -
P1045 [NOIP2003 普及组] 麦森数——解题报告
实际上和麦森数没啥关系2. 因为数量级的问题,此题只能采用**高精度**和**快速幂**。3. $2^n -1$在十进制下位数和$2^n$ 相同,因为$2$的整数次幂的尾数为$2,4,8,6$一定大于$1$,所以只需计算$2^n$的位数即可。4. $2^n =10^{nlg2}$,所以最终的位数为$\lfloor nlg2\rfloor$。5. 最后得到$2^n-1$时的减法也一定要用高精度。原创 2020-09-15 22:22:14 · 294 阅读 · 0 评论 -
P1064 [NOIP2006 提高组] 金明的预算方案——解题报告
2.由于题目中构成主从依赖关系,如果不选择主物品,那么附属物品也不能选择。所以相当于我们选择物品的时候是一组一组进行的。状态转移的时候便可以分组转移了,这便是一个典型的分组背包问题。给定总钱数n,和可供选择的m个物品,物品之间构成主从关系,如果要买附属品,则必须购买他的前置物品,也就是主物品。1.很显然这是一个背包问题的变种,所以方法在第一时间就确定下来了,我们采用DP的方式来完成这道题。=0时,自己便是主物品。3.因为存在整组不选,或者选则一定选主物品,所以我们应当在转移和状态中体现这一点。...原创 2021-01-05 22:43:32 · 509 阅读 · 0 评论 -
P1463 [POI2001][HAOI2007] 反素数——解题报告
搜索答案即可,因为实际上的搜索范围很小,所以并不会超时。中约数个数最多的数中最小的一个。分解质因数后可以写成。综上所述,我们只需要。原创 2020-11-02 18:18:48 · 248 阅读 · 0 评论 -
P1941 [NOIP2014 提高组] 飞扬的小鸟——解题报告
下面考虑如何转移,因为题目非常的明确,两层之间只有两种转移方式。将高度作为背包的容量,每一层的选择作为物品,点击的次数作为价值。小鸟从游戏界面最左边任意整数高度位置出发,到达游戏界面最右边时,游戏完成。下降即相当于从背包中取出,而上升则是正常的放入物品。由于题目要求,上升是可以累计多次点击来上升的。一个很显然的结论是,按照水平方向,后面的状态的值不影响前面的状态,所以这是一个很典型的。小鸟位于横坐标方向不同位置时,上升的高度。或者小鸟碰到管道时,游戏失败。时,无法再上升,游戏继续。原创 2021-01-06 19:09:35 · 790 阅读 · 0 评论 -
P1962 斐波那契数列——解题报告
此时我们就能够不断得到斐波拉契数列后续的项了,而因为每次所乘的矩阵都相同,所以我们可以使用矩阵快速幂来实现这一过程。时间递推完成这个过程。而且因为取余运算和精度问题,我们也不能用斐波拉契数列的通项公式来做。4.因为矩阵的行列不大,所以可以当作常数处理,最终,时间复杂度就是快速幂得时间复杂度,为。,所以每一次变化的方式都是恒定的,我们可以用矩阵快速幂来解决这个问题。的数据范围下无法像传统方式那样,在。原创 2020-09-17 23:29:27 · 350 阅读 · 0 评论 -
P2168 [NOI2015] 荷马史诗——解题报告
题目链接:https://www.luogu.com.cn/problem/P2168题目大意:存在从1 ~ n的n个数,给定每个数出现的次数times[i],现在想用一个k进制数来替换数字i,希望最后得到的字符串s的长度最小。求出s的最小长度以及1 ~ n中在k进制下最长的数的长度是多少。题目分析:1.看完题目我们就应该明白,应该让使用次数越多的数的长度越短,这样才能达到使k进制下s最短的目的。2.很明显,当我们把times[i]当作权值w[i],把k进制数表示数字i的结果表示为字典树,每个数被替原创 2020-10-22 15:34:19 · 704 阅读 · 0 评论 -
P2261 [CQOI2007]余数求和——解题报告
的值是相同的,我们考虑如何将这些相同的数合在一起计算,降低时间复杂度。,不满足题目的要求,所以我们要首先分析这个运算的本质。如果直接求解这个问题,它的时间复杂度就是。,所以,我们要求的东西就变成了。根据取余运算的特性,我们知道。综上所述,区间个数的数量级在。我们很容易发现,在当。原创 2021-01-06 11:16:20 · 226 阅读 · 0 评论 -
P2512 [HAOI2008]糖果传递——解题报告
每人只能给左右两人传递糖果。每人每次传递一个糖果代价为。求使所有人获得均等糖果的最小代价。个人糖果数与平均值的差值的前缀和。个),值为负表示反向。,所以可以列出一系列方程。的选择即可转化为数轴上几点。个小朋友坐成一圈,每人有。由于传递后每个人的牌都为。的值使得上述求和最小。,那么原问题变成了求。原创 2020-09-15 23:06:49 · 272 阅读 · 0 评论 -
P2590 [ZJOI2008]树的统计——解题报告
题目的意思非常简单明了,很明显是一道类似于线段树的题目。但是这个时候我们遇到的麻烦就是,线段树一般是在一段连续区间上进行的,而本题的数据在一棵树上,这对我们使用线段树带来了麻烦。因为题目每一次修改都是在某一条路径上进行的,所以这提醒我们可以将树上某一条链上看作连续的一段数据,这为我们使用线段树创造了条件。但同时,如果选择一条链为连续数据,那么就意味着剩下的点将不是连续的数据,所以如何选择这条链成为了关键问题。为了降低时间复杂度,我们应当选择子节点最多的点来构成这条链,即树链剖分算法。所以我们可以使用原创 2021-03-01 11:33:05 · 214 阅读 · 0 评论 -
P3620 [APIO/CTSC2007] 数据备份——解题报告
题目链接:https://www.luogu.com.cn/problem/P3620题目大意:在一条数轴上有n个点,每相邻两点之间构成一个距离,选择互不相邻的K个距离,使得这K个距离之和最小。题目分析:1.因为要找k个的和最小,如果不考虑题目中互不相邻的条件,我们可以直接贪心的寻找前i个最小的距离。2.而此时要求互不相邻的情况,我们假设此时剩下的距离中最小的是X[i],如果选择X[i],势必会影响X[i-1],**X[i+1]**的选择情况,所以我们将左右两段距离 X[i-1] ,X[i+1] 同原创 2020-10-19 19:37:05 · 254 阅读 · 0 评论