自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CSP-J/S学习笔记 C++

自用目录

2023-08-07 04:28:55 149 1

原创 前中后缀表达式

前缀表达式以及后缀表达式的出现是为了让计算机的运算更加简便。因为计算机需要对中缀表达式进行优先级运算。

2023-09-10 22:34:51 56

原创 8.27 矩阵乘法

矩阵,数学术语。在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。通俗的来说,由m∗nm*nm∗n个数组成的m∗nm*nm∗n大小的数表,称为一个矩阵。

2023-08-27 23:33:24 85

原创 8.25 单调栈与单调队列

当队列不为空且当队列队尾元素>=当前元素时,那么队尾元素就一定不是当前窗口的最小值,这时删去队尾元素,加入当前元素。单调队列,即单调递减或单调递增的队列。单调栈,指严格单调递增或单调递减的栈,跟单调队列差不多,但是只用到它的一端。当该元素可以入栈的时候,栈顶元素就是它左侧第一个比它小的元素。当队列不为空,且当前滑动窗口大小>设定的大小,就弹出元素维护。使用单调队列优化这道题,时间复杂度也在O(n)左右。如果栈空,就意味着左边没有比它小的数,输出-1。首先,如果不满足单调性,就将元素弹出栈。

2023-08-25 22:43:57 46

原创 8.25 指针

指针描述了数据在内存中的位置,标示了一个占据存储空间的实体,在这一段空间起始位置的相对距离值。在C/C++语言中,指针一般被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对象可以是变量(指针变量也是变量),数组,函数等占据存储空间的实体。*pt存储的是pt前一个的值——p的值,即a的地址。**pt存储的是pt前一个的前一个的值——a的值。二重指针是指向指针的指针,存储指针变量的地址。符号代表将指针指向上一个存储的值。pt存储的是pt的值,即p的地址;指向字符串常量的指针。

2023-08-25 22:25:48 40

原创 洛谷题单题解【动态规划1】

蒟蒻记忆力有限,写个题解存下做题思路。欢迎指正错误!

2023-08-21 10:15:09 132

原创 树形动态规划

某大学有n个职员,编号为1n。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数ri​,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。

2023-08-20 13:32:29 35

原创 区间动态规划

设有NN≤300堆石子排成一排,其编号为123⋯N。每堆石子有一定的质量mi​mi​≤1000。现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻。合并时由于选择的顺序不同,合并的总代价也不相同。试找出一种合理的方法,使总的代价最小,并输出最小代价。

2023-08-20 13:21:26 36

原创 8.19 结构体的运算

众所周知,结构体是不能直接进行运算的!

2023-08-19 23:37:58 171

原创 8.19 求解最长子序列

那么两个序列的LCS即为S1减去最后一个元素,与S2减去最后一个元素的LCS加上共同的最后一个元素。

2023-08-19 23:06:29 66

原创 8.19 线性dp问题 题解

观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。在上面的样例中,从7→3→8→7→5的路径产生了最大权值。

2023-08-19 22:39:39 55

原创 8.14归并排序

归并排序是一种稳定的算法,其时间复杂度保持为Onlogn​。

2023-08-14 15:12:25 37

原创 8.14快速排序

快速排序,是c++自带的sort函数使用的排序方法。是一种不稳定的排序法。它的时间复杂度在On−Onlogn​之间,平均时间复杂度为Onlogn​。

2023-08-14 14:21:25 28

原创 8.13 最小生成树

如果要将2 5放入一个集合,即将指针为2 4的集合合并,只需要让2的指针指向5的指针就行了吗?初始集合设置为空,每次找到距离起点最近的点,将点收入点集,再继续查找距离这个边集最近的点。下面是并查集经典的find函数,在下面的kruskal代码我们也要用到。不存在,就加入集合。由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。简单来说,并查集,就是询问 合并集合与集合之间的一些操作。最开始时,列表中的每个点都在不同的集合,指针都指向自己。再将距离最短的结点的后继结点,设置为待查找。

2023-08-14 00:40:43 40

原创 8.12 最短路的基本算法

如果只查找k条边就能到达的结点数,对基础贝尔曼进行一些限制可以实现。SPFA算法主要用于判断负环。没有负环时不要用此代码,容易超时!优于Dijkstra算法的方面,是边的权值可以为负数。弗洛伊德算法,用于求任意两点之间的最短路。时间复杂度过高,高达O(nm)。

2023-08-12 23:44:41 42

原创 8.9 约数个数与约数之和

2的指数个数为2,3的指数个数为2,根据公式可得。每一个数的约数挑一个相乘得来,一共有。由约数和定理可知,360所有正约数的和为。先对12分解质因数,得到2 2 3,即。对于一个正整数N,他的约数个数。实际上,N的约数个数是由。举例:求360的约数和。将360分解质因数可得。例:求12的约数个数。

2023-08-09 22:56:58 33

原创 8.8 排列与组合

从n个数字中,选择m个进行排列,称为n个元素中取出m个元素的一个排列.排列的方案数记为。

2023-08-08 15:21:19 40

原创 8.7欧几里得算法与拓展欧几里得算法

2023-08-07 04:03:14 93 1

原创 8.6 图 最短路与Djkstra+模拟ACM总结

纯数学题,推公式即可。

2023-08-07 02:24:21 73 1

原创 8.6 素数筛法

我筛筛筛筛筛!

2023-08-07 00:06:32 51 1

原创 8.5 ACwing278 数字组合

给定N个正整数A1​A2​AN​,从中选出若干个数,使它们的和为M,求有多少种选择方案。

2023-08-05 23:01:58 37 1

原创 8.5 01背包 完全背包 多重背包ⅠⅡ(含优化)组合背包

求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。组,每组中的物品相互冲突,现在,他想知道最大的利用价值是多少。如完全背包的部分,将代码使用动态一维数组优化,减少空间复杂度。,用空格隔开,分别表示物品数量和背包容积。,用空格隔开,分别表示物品种数和背包容积。,用空格隔开,分别表示物品种数和背包容积。,表示物品的重量,利用价值,所属组数。

2023-08-05 22:46:20 103 2

原创 8.4 差分算法

前缀和的进阶。

2023-08-05 01:31:27 43 3

原创 8.4 前缀和

本文所有题目用暴力均会超时。考虑更简便算法。

2023-08-04 23:07:47 35 1

原创 8.3 二分法实现A-B数对

这道题用暴力循环也会TLE,考虑简便算法。遇到减法,先把数组sort一下,变成有序数组。就想到了对应的算法->二分查找。这种算法可以有效避免搜索重复,从而减小时间复杂度。

2023-08-04 01:07:59 51 1

原创 8.3 快速幂

求n的k次幂->首先想到双循环暴力->时间复杂度O(n2) 100%TLE减少不必要的循环次数->n9n2n3n4,而n3和n4都可以通过n2自乘得到。如果将n转换成,看一下数位,想的会更清晰。

2023-08-04 00:50:59 26 1

原创 8.2 记忆化搜索-数的划分

将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。n7k3,下面三种分法被认为是相同的。115;151;511问有多少种不同的分法。

2023-08-03 02:54:54 49

原创 8.2 高精度算法

高精度算法的代码思路:模拟竖式计算。

2023-08-03 02:34:45 47

原创 8.1 枚举 dp 全排列 组合 递推

【代码】8.1 枚举 dp 全排列 组合 递推。

2023-08-01 19:24:13 53 1

原创 7.31 P8647蓝桥杯

【代码】7.31 P8647蓝桥杯。

2023-07-31 18:15:37 31 1

原创 7.31 二分查找(浮点型)

【代码】7.31 二分查找(浮点型)

2023-07-31 17:33:43 22 1

原创 7.31 二分查找

【代码】7.31 二分查找。

2023-07-31 17:12:11 31 1

原创 C++全排列

【代码】C++全排列。

2023-07-30 18:02:31 35

原创 [NOIP19981普及组] 幂次方

任何一个正整数都可以用2的幂次方表示。例如 $137=23+2^0 $。同时约定方次用括号来表示,即ab可表示为ab。由此可知,137可表示为27232072222021用2表示),并且3220。所以最后137可表示为222220))2220))20。又如1315210282521所以1315最后可表示为22220))222220)))22220))220。

2023-07-30 17:01:15 47 1

原创 数据结构-循环队列

【代码】数据结构-循环队列。

2023-07-30 15:50:34 31 1

原创 7.30 数据结构绪论-单链表 双链表 栈 队列 循环队列

【代码】7.30 数据结构绪论-单链表 双链表 栈 队列 循环队列。

2023-07-30 14:43:56 57 1

空空如也

空空如也

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

TA关注的人

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