- 博客(15)
- 收藏
- 关注
原创 【补基础】P3805 【模板】Manacher 题解
我们发现有很多的字串会被重复的访问,那么我们就可以通过用一个辅助数组hw,来存储每一个点能拓展出的最长回文字串的长度,然后我们还可以设置一个变量mr去表示我们在拓展时涉及到的最右端的节点,然后在设置一个变量mid来表示出包含mr节点的回文子串的对称轴,可以看出,关于mr对于mid的对称点x的hw[x]是等于hw[mr]的,所以就可以算出某一节点的hw值。当i在mr的右边的时候,因为我们没有遍历到这里,所以只能老老实实的遍历一遍,得出hw[i]的值,然后再去更新mid和mr值,这样的复杂度是$o(n)的。
2026-02-16 14:47:58
865
原创 P11362 [NOIP2024] 遗失的赋值 题解
接下来考虑不合法的情况,设上一个限制的值为 x ,当前限制的值为 y ,那么不合法的情况就是说从 x 开始延伸到现在的位置,而且最后的限制不在 y ,那么这种情况就有。首先(至于怎么让思维到这一步,我真不知道),可以考虑没有不合法的情况,设这个区间的长度为 x ,对于两点之间有。最后将这两个相减得到这个区间的答案,最后将每个区间的答案乘起来就行。感觉学会了dp之后就看什么都像dp了,谁能救救我qwq。种情况,那么对于这个区间就有。2.最后一个区间也要乘起来。1.开long long。
2025-10-13 16:17:05
265
原创 P11362 [NOIP2024] 遗失的赋值 题解
,可以考虑没有不合法的情况,设这个区间的长度为x,对于两点之间有v^2种情况,那么对于这个区间就有。接下来考虑不合法的情况,设上一个限制的值为x,当前限制的值为y,那么不合法的情况就是说从x。最后将这两个相减得到这个区间的答案,最后将每个区间的答案乘起来就行。开始延伸到现在的位置,而且最后的限制不在y,那么这种情况就有。感觉学会了dp之后就看什么都像dp了,谁能救救我qwq。2.最后一个区间也要乘起来。这题实际上还是比较友好的。1.开long long。
2025-10-07 19:37:23
308
原创 P1437 [HNOI2004] 敲砖块 题解
可以考虑斜着对三角形的轮廓进行 DP,即设 表示当前考虑到斜着的第i列,总共选了j个,当前列选择了从上开始的k个的最大值,转移时,枚举上一列有几个,不能超过k+1,再加上这一列前k个的和即可。实际上这题要选择的是若干个三角形重叠而成区域,再一看,又有点像。然后就异常简单的写4(i,j,k,k1)层循环就可以了。实际上,与正解没有任何的联系(bushi)这题乍一看,是不是有点像数字三角形?然后就发现,这题我做过?
2025-10-05 20:59:09
437
原创 P1156 垃圾陷阱 题解
设dp[i][j]表示当前遍历到第i个垃圾,此时的高度为j,然后去存这个时候可以持续多长时间。因为如果出去了,在 dp[i][n] 至 dp[i][2n] 里就会有数值,找j最小的数值。1.当上一步的持续时间大于现在的时间且当前的j可以保留垃圾时(高度之差大于等于零)#12#13的点,一个是吃不到一个垃圾,另一个是一个垃圾的高度直接就比井还高了。如果没有就在 dp[0][0] 至 dp[i][n-1] 找最大值。一看就是数据太废了,没有想到我的高级的点上。为什么是dp[0][0]?状态设计的有些抽象了。
2025-10-05 19:24:34
622
原创 P9753 [CSP-S 2023] 消消乐 题解
结尾的合法字串就会错了,所以说就跳过这个字串再扫,即直接跳到lis[3]-1的地方继续扫,就可以解决问题了!时因为前面一个不一样了,但是因为是从前面扫过来的,在去扫以。左右加两个同样字符的和在s[i,j]后加一个合法字串的。花了半小时打出来25pts还是很有性价比的。首先我们观察出对于任意长度大于2的合法字串。先扫出长度为2的合法(可消除)字串,设为。你问我为什么和暴力分数一样?啊,肯定是数据点的问题(确信)再把扫出的更大的合法子串设为。(即第二个b)时可以得出。为开头的最短合法字串。
2025-10-03 20:15:05
579
原创 P1861 星之器 题解
有 f(x1)+f(x2)-f(x1+1)-f(x2-1)=x2-x1-1。的势能,总势能就是每个点的势能和,这里的x和y是独立的两个维度。OK回到正题,这题就是要推公式(结论:数学题,服了)题面就出的让人倍感困难,于是考试的时候我直接使用了。再去搜百度,回来一看,我看了个寂寞啊!期望得分:0pts 实际得分:0pts。先单独考虑x维操作,接着就能推出来y维。这塔姆的什么玩意儿,什么叫势能啊?考完一看题解,整个人呆住了。不妨将其设为0,容易推出。这题真是尽展人类智慧,
2025-09-14 16:15:45
434
原创 补基础:P3389 【模板】高斯消元法 题解
+j)//增广矩阵?=s)//swap神力!//做大小的比较,直接改下标。听着非常高级,实际上就是一种很新的加减消元法而已。//最近改变了麻风,怎么还是好丑(bushi)//注意是i+1,要不然就错了。经过第一个视频的讲解大家应该都会了。实现也很简单,模拟他的过程即可。高斯消元其实非常简单,
2025-07-31 20:02:04
699
原创 补基础:P3379 【模板】最近公共祖先(LCA)题解
则它们的 LCA 等于 DFS 序上位置在 [dfnu+1,dfnv] 的深度最小的任意结点的父亲。他存的是每个点在dfn序中第几个出现,所以说dfn就可以变成这样:3 2 1 4 5。所以我看了一下Alex_Wei的题解,发现他和我的dfn储存完全不一样!dfn序是指从根节点开始,给这棵树跑一个dfs,每个数进入dfs的顺序。例如上图,这棵树的dfn序为:4 2 4 1 3 1 5 1 4。但是只有70分,剩下的点TLE了,绝对不是dfn的问题!,则它们的 LCA 就等于。,这是唯一需要特判的情况。
2025-07-30 15:30:52
1813
3
原创 P6564 [POI 2007] 堆积木KLO 题解
对了,query意思是查询,modify意思是修改(有没有和我一样的文盲去查了百度…然后要以i−a*i 为关键字排序,树状数组统计<a*i的最大值,这就是f*i的值。因为朴素dp的O(n^2)可以因为树状数组的高效查询和修改优化到O(nlogn)因为这样写只有当每一步的解都是当前最优解时才可以明显是贪心啊。其实xtr学长讲的时候说这题是高贵的斜率优化,所以我们就可以使用更加高贵的树状数组优化dp。所以A掉这题简直绰绰有余。实际上是因为不太会实现。
2025-07-30 15:29:52
597
原创 # P4124 [CQOI2016] 手机号码 题解
实际上是change_L()函数的想法出了问题,因为1e10-1他就不是一个电话号码了!所以说才算了很多,导致答案错误,所以就只能做一个特判,如果输入的L和法就++ans,然后停用change_L()函数。//f4表示是否出现了4,flag表示状态是否相同(此位的数字上限),F表示是否有3个数连在一起的情况。还有一个小优化qrp状态不用存数字,直接存上一位与上上一位是否相等,从10变成了2(但我太懒没有写)//p表示第几位,pre表示上一位的数字,qrp表示上一位的数字,f8表示是否出现了8。
2025-07-30 15:27:04
1636
原创 P3413 SAC#1 - 萌数 题解
这题和板子区别不大,回文的判断也十分简单,因为只要len>=2就好,所以只用判断2种情况“1 1”和“1 0 1”,就可以执行++ans。因此就可以设计两个状态pre和qrp(瞎起的两个名字,没有实际意义)分别表示前一个数和前前一个数,这样就可以判断回文。剩下就是正常的数位dp的实现,直接上代码!坏了,说完了屁话就不知道该怎么写了。
2025-07-30 15:26:09
400
原创 P2831 [NOIP 2016 提高组] 愤怒的小鸟 题解
if(equal(a[f]*x[p]*x[p]+b[f]*x[p],y[p]))//带公式y=a*x*x+b*x;//x用来存横坐标,y用来求纵坐标,a,b分别存抛物线的参数a,b,tx,ty分别存单独的猪的横,纵坐标;
2025-07-30 15:24:58
1550
原创 日志(篇1):P1048采药
直接满江红,然后发现是写成了贪心,改完之后又写成了完全背包(实力),调了好久,后来发现逆序才不会重复,终于AC了!我最开始的时候就直接用了1维dp。
2025-07-13 18:40:56
150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅