自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 洛谷 P3375 【模板】KMP

我们想想都知道,这时间复杂度太高了(这里假设S的长度是m,P的长度是n,那么时间复杂度就是O(nm))非常的高。并且你想想,前面S和P都有这么多已经匹配的字母了,就因为一个不相同的字母就导致了j从9回到1,i从9回到了2,这太可惜了吧。在这幅图中,我们已经找出了相等前后缀的最长长度,那么当i增加到9的时候,这个时候P[9]=a,我们在看P[j+1](j==5)即P[6]=b,=P[6],那么说明此时相等前后缀的长度不能+1,那么只能减少,这一点是毋庸置疑的。=P[j+1]的时候,j需要等于ne[j]。

2024-04-10 14:32:59 936 1

原创 洛谷P1198 [JSOI2008] 最大数

我们可以看出来数组长度的最大值是2e5,并且每次查询的最坏的情况是O(N)的时间复杂度,这样一计算,发现最坏的情况是2e10,远大于1e8,必定TLE,所以使用查询复杂度为log(N)的线段树。父节点的mx值肯定是根据这个父节点的两个子节点来更新的,父节点的区间是两个孩子区间的合并,所以父节点的大区间的mx值肯定是取两个孩子区间的mx值嘛。

2024-04-08 01:04:56 271 2

原创 动态规划-01背包问题

动态规划解题步骤动态规划解题步骤1.确定状态变量(函数)2.确定状态转移方程(递推关系)---关键!!!3.确定边界条件。

2023-12-08 17:12:22 522

原创 洛谷B3636 文字工作

【代码】洛谷B3636 文字工作。

2023-12-03 16:26:00 507 1

原创 Codeforces Round 912(Div.2) A-C题解

【代码】Codeforces Round 912(Div.2) A-C题解。

2023-12-02 17:41:20 659

原创 洛谷 P1024 [NOIP2001 提高组] 一元三次方程求解

一元三次方程的根可能是整数,也可能是小数,并且题目和我们约定,这个方程一定是有解的,并且根的范围在-100和100之间。

2023-11-22 12:29:23 130 1

原创 Codeforces Round 865 (Div. 2) Problem B

然后再讲一下这题的思路,首先我们肯定是想要所有路径的最大值,我们(1,1),和(2,n),必定是n和n-1,这两个数字可以随便调换位置,因为不管怎么交换位置,最终这个n和n-1必定在总和里,然后我们要做的就是第一行找到所有最大值,次最大值......相加,同时减去min值,次min值......如果没有读懂题意,比如这个人是怎么走的,我建议你可以看一下样例输出,相信你看完肯定可以看懂,他到底是怎么走的。这题比较简单,运用了简单的贪心思想,以及自己构造数组的能力,是一道较为简单的思维题。

2023-10-27 19:19:39 43 1

原创 Codeforces Round 873 Div2 Problem B

由题意得,相当于就是我们先给每个位置都编号,1号,2号一直到n号,这些编号里的数字都是乱序的。举个例子就是第1个和第1+k个数字交换位置,不难发现,我们相当于就是找把这个位置的数字减去这个位置的序号的绝对值,然后把这n个全部进行这个操作,然后在找这些减完之后再绝对值得数的最大公因数。思路很简单,但我很菜,浮现在我脑海中的第一个思路就是无脑暴力,我直接无脑从1到n中寻找最大公因数,最后无奈,在测试点4tle了。和以往的cf b题很像,这条也并没有那么难,但是任然有人tle,或者wa掉,没错,这个人就是我。

2023-10-27 09:23:47 170 1

原创 Codeforces Round 155 (Rated for Div. 2) Problem B

现在讲一下正确的思路:首先我们发现这个两个数组a,b的值,我们不需要重新排列,他相当于重新给坐标轴赋值,并且这个坐标轴不是单调的,比如x轴可能是2,5,9,7这种,y轴同理。所以我们再回到题目,题目说想要最小值,那么我们不妨,找a数组的min值,然后用b数组的每一个与它相加,求出总和。先讲一下我一开始的错误想法,我一开始认为的是棋盘上任意一个位置,这个位置的行或者列,必须至少一个筹码,并且这个筹码的行列的值必须要等于这个任意位置的横纵坐标之一,或者都等于。

2023-10-25 22:30:30 29

原创 Codeforces Round 893 (Div2) ProblemC

然后从3再开始,3,6,9,12........ ,但是我们发现6这个数字同时有2和3这个因子,如果按照我刚刚说的来输出,6这个数字肯定会被输出两次,那这样肯定会wa的,所以我们要做的就是,已经出现的数字就不要让他出现第二遍了。这题首先我们要明确目标,如果1-n你的数字是1,2,4,8,10...... 这种的话,你就会发现他的分数在逐渐上升,1和2是1,2和4是2,4和8是4,相信我举了这几个例子,你已经知道这题应该要怎么写了。相信这条一定使大多数初学者难堪,但是不要害怕,我来拯救你们!

2023-10-25 10:37:27 126 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除