自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 质数和约数

在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数,或者叫素数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。例如:4的约数:1,2,4。

2023-08-24 20:45:41 94 1

原创 最小生成树

用处稠密图一般用朴素版Prim,稀疏图一般用Kruskal算法。其实还有堆优化版的Prim算法。堆优化版Prim也是用于稀疏图当中,但它没有Krusjal代码简洁易懂,且代码长,所以一般还是用Kruskal算法。

2023-07-29 16:00:39 85 2

原创 最短路问题

从一个点到所有点的最短距离。

2023-07-29 00:59:05 85

原创 DFS和BFS

n皇后问题(在n*n的棋盘中,打印出n个皇后能够同时存在的棋盘布置。皇后的攻击范围是同一行列,和两条对角线)空间:O(h) —— h为树的高度。从0,0点出发到右下角最少需要几步。:按字符序来打印数字1~n。数据结构:stack。数据结构:queue。

2023-07-28 15:20:34 66 1

原创 Trie树和并查集

利用树的原理来存储每一个字符串,字符串中的每个字符都作为树中的节点。查找是否存在该字符串时,就是从树的根节点出发,判断是否存在该字符串。问题3:如何合并两个集合:px是x的集合编号,py是y的集合编号。p[x] = y(也就是把集合x插到集合y中)每个集合用一棵树表示。树根的编号就是整个集合的编号。每个节点存储他的父节点,p[x]表示它的父节点。问题2:如何求x的集合编号:while(p[x]!= x)x = p[x]问题1:如何判断树根:if(p[x] == x)高效地存储和查找字符串集合的数据结构。

2023-07-27 21:12:16 36 1

原创 KMP算法

可以这么理解,但第j + 1个数与i不匹配时,那么就在前j个数中找到最大前后公共缀。假如这里最大前后公共缀为x,那么就会有第i - x个数 到第 i - 1个数与前x个数是相等的。主串匹配过程更好理解,按照kmp匹配的过程就能理解。当主串与模板串不匹配时,那么就让模板串利用next[]数组进行移动,再次匹配,直到j == 0或匹配成功。相比于暴力解法,kmp算法的主要用途就是用于令模板串能够更快的去匹配主串。KMP算法相比于暴力解法,要点就在于next数组,能够省去重复匹配的时间。

2023-07-21 21:27:33 29 1

原创 栈 与 队列

用数组实现栈与队列思路很简单,清楚栈与队列的特性就可以理解了。

2023-07-19 23:59:42 141

原创 单链表与双链表

用数组实现双链表其实跟单链表差不多,就是把ne[]数组换成l[]和r[]。ne[ i ] 表示节点i的next指针是多少。单链表可以用于邻接表(n个链表)idx 存储当前已经使用到了的点。邻接表的主要应用是存储图和树。e[ i ] 表示节点i的值。优点:用数组实现链表会更快。head 表示头结点的下标。

2023-07-19 22:32:11 139

原创 牛客竞赛 Round3

思路:这道题的难点就在于如何确定要靠近的那个字母,如果是遍历整个字符串,时间复杂度是O(n^2), 会导致TLE。然后我们可以知道字母就26个,所以这里遍历26个字母。时间复杂度就O(26*n),就可以过了。思路:由于是7的倍数,所以在个位遍历0到9插入,总会有一个数能被7整除。思路:遍历每一种a,b大礼包的情况,不断比较得到最大值。

2023-07-17 19:08:20 80 1

原创 牛客小白月赛76

思路:随便代一个。例如长途说拳头,他就会以为你出布来赢,所以长途为了赢他就会出剪刀,这时你出拳头就能赢。

2023-07-15 19:50:49 59 1

原创 牛客周赛 Round 2

思路:题目上给出可以选择两个相邻不同颜色且都没有被标记的数字进行相加。这里就出现了一个问题:如果出现RBR时,我们如果选择了前面的RB,那么后面的BR就选不了了。这里就要进行讨论了。所以我们分情况讨论,然后比较整个图形所占有的每一列的格子最大值,接着更新相应列的格子高度即可。小红有很多次操作,每次操作可以选择两个相邻的不同颜色的数字标记,并获得它们数字之和的得分。选i:dp[ i ] = dp[i - 2] + a[i - 1] + a[ i ];dp[ i ]:在i的位置上小红所能获得的最大的分数。

2023-07-10 21:08:11 479 2

原创 牛客练习赛113

思路:由于是判断回文串,可以利用l, r作为左右对应位置的下标来遍历,然后就分为两种情况,分别s[l] == s[r] 和 s[l]!注意:因为结果要对10^9 + 7去模,为了防止数据过大的情况发生,所以我们在循环中需要时刻对res取模。思路:由题意观察可以知道,当n等于3时,最小的直径就是1,而当n大于等于4时,直径等于2.题目: 定义基环树为n个节点、n条边的、没有自环和重边的无向连通图。小红想知道,n个节点构成的所有基环树中,最小的直径是多少?定义一个图的直径是任意两点最短路的最大值。

2023-07-08 15:55:35 593 1

原创 Codeforces Round 882(Div. 2)

题意:给n个长度的一串数字:a1, a2 ......., an.在可以把这串数字分成k个组的情况下使得每个组的f(l, r)相加总和最小。思路:将所有相邻两个数之间的的差值储存起来,从大到小进行排序并且相加(nums),最后用总和(nums)减去前k-1个值得出来的结果就是所需要的答案。

2023-07-07 14:46:17 303 1

原创 位运算,离散化和区间合并

常用的两种位运算的操作:1.求n的第k位数字是几:n >> k & 1内部步骤:(1)先把第k位移到最后一位: n >> k(2)看第k位是几: x & 12.返回n的最后一位1:lowbit(n) = n & -nlowbit(x) : 返回x的最后一位1eg: x = 10,二进制就是1010 ·lowbit(x) = 2,二进制为10lowbit(x) 就相当于 x & -xx & -x == x & (~x + 1) //~为取反的意思。

2023-07-07 11:34:07 49 1

原创 Atcoder经典题

重点: if (abs(x / g * g - x) < abs((x / g + 1) * g - x))//四舍五入。取模公式: ( A - B) % mod = ((A % mod) - (B % mod) + mod) % mod.操作:第一轮对个位进行四舍五入,第二轮对百位进行四舍五入,第三轮对百位进行四舍五入......以此类推到K轮。题意: 一共有六个数A,B,C,D,E,F。求A*B*C - D*E*F最后%998244353的值。所以我们需要边算边取模。

2023-07-05 11:19:56 576 1

原创 牛客周赛Round1

题目意思:按照题目给的例子来画U思路:将'U'分成两部分,一部分是上面不变的竖线,第二部分是‘U’变化的底部。接着按照这两部分的规律写出代码就可以了。

2023-07-05 10:36:46 92 1

原创 牛客小白月赛75

3.阿宁最近对吃豆子感兴趣,阿宁想要用程序输出一下,但是图形化对于阿宁来说太难。对于一个难度值大于y的知识点,蒜同学讲解完后,阿宁就会觉得太难了,简直就是对阿宁弹琴,阿宁对蒜同学的崇拜值加3。题解:这道题要求的是按一定顺序找到最大的崇拜值,那么顺序无要求的话我们自然就可以想到进行排序从而得到最大的崇拜值。已知阿宁坐大巴到小山路西需要x分钟。对于一个难度值小于x的知识点,蒜同学讲解完后,阿宁就会觉得太简单了,阿宁对蒜同学的崇拜值减1。2.现在蒜同学打算给阿宁讲解n个知识点,第iii个知识点的难度值是ai。

2023-07-02 00:14:59 321 1

空空如也

空空如也

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

TA关注的人

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