- 博客(15)
- 收藏
- 关注
原创 学习总结12
题目描述给定 n 个整数 1,2,⋯ ,a1,a2,⋯,an, 求它们两两相乘再相加的和,即输入格式输入的第一行包含一个整数 n。第二行包含 n 个整数 1,2,⋯a1,a2,⋯an。输出格式输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。输入输出样例复制41 3 6 9复制117说明/提示对于 30%30% 的数据, 1≤n≤1000,1≤ai≤100。对于所有评测用例, 1≤n≤2×105,1≤ai≤1000。
2024-02-18 21:47:01
469
原创 学习总结11
全称Knuth-Morris-Pratt算法,是一种字符串匹配算法。该算法的目的是在一个文本串S内查找一个模式串P的出现位置。KMP算法的核心思想是利用模式串自身的特性来避免不必要的字符比较。算法通过构建一个部分匹配表(也称为next数组),来记录模式串中每个字符之前的前缀子串和后缀子串的最长公共长度。根据这个表,算法可以通过调整模式串的起始位置来跳过不需要比较的字符,从而提高匹配的效率。KMP算法的具体步骤如下:1. 预处理模式串P,构建部分匹配表next数组;
2024-02-15 22:53:53
535
1
原创 2.6学习总结10
动态规划是一种解决问题的策略,适用于具有重叠子问题和最优子结构性质的问题。动态规划的基本思想是将原问题分解为一系列子问题,通过求解子问题的最优解来得到原问题的最优解。在求解子问题时,利用已经求解过的子问题的解来避免重复计算。动态规划适用于求解最优化问题,例如最长公共子序列问题、0-1背包问题等。它可以显著提高计算效率,减少不必要的重复计算。
2024-02-06 21:54:10
1434
1
原创 2.5学习总结9
并查集是一种数据结构,用于处理一些不相交集合的合并及查询问题。:将每个元素单独作为一个集合。:确定某个元素所属的集合。:将两个集合合并成一个集合。并查集的时间复杂度为O(log*n),其中n是元素的个数。
2024-02-05 22:17:05
1101
原创 2.4学习周结
栈是限定仅在表尾进行插入和删除操作的线性表。允许去插入和删除的一端叫做栈顶,另一端称为栈底,不含任何元素的栈称为空栈,是后进先出的线性表。
2024-02-04 22:35:44
1133
原创 2.2学习总结8
2)若第i个物品的重量小于等于j,即wi <= j,dp[i][j] = dp[i-1][j](不选)或 dp[i][j] = dp[i-1][j-wi]+vi(不选),则。2)若第i个物品的重量小于等于j,即wi <= j,dp[j] = dp[j](不选)或 dp[j] = dp[j-wi]+vi(不选),则。1)若第i个物品的重量大于j,即wi > j,则dp[i][j] = dp[i-1][j],即当前物品不选;输出一行,这一行只包含一个整数,表示在规定的时间内,可以采到的草药的最大总价值。
2024-02-02 21:58:53
966
原创 “小猫钓鱼”
星期天小哼和小哈约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏——“小猫钓鱼”。游戏的规则是这样的:将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的 第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意一人手中的牌全部出完时,游戏结束,对手获胜。
2024-02-01 21:11:50
419
1
原创 2.1学习总结7
双端队列(double-ended queue),或简称为deque,是一种具有两个端点的队列数据结构,可以从两端插入和删除元素。双端队列可以在队列的头部和尾部进行插入和删除操作,因此它既具备了栈的特性(LIFO,后进先出),也具备了队列的特性(FIFO,先进先出)。这使得双端队列在特定情况下非常有用。push_front(x):将元素x插入双端队列的头部。push_back(x):将元素x插入双端队列的尾部。pop_front():删除双端队列头部的元素,并返回删除的元素。
2024-02-01 20:46:37
1387
1
原创 1.31学习总结6
M 海运公司最近要对旗下仓库的货物进出情况进行统计。目前他们所拥有的唯一记录就是一个记录集装箱进出情况的日志。该日志记录了两类操作:第一类操作为集装箱入库操作,以及该次入库的集装箱重量;第二类操作为集装箱的出库操作。这些记录都严格按时间顺序排列。集装箱入库和出库的规则为先进后出,即每次出库操作出库的集装箱为当前在仓库里所有集装箱中最晚入库的集装箱。出于分析目的,分析人员在日志中随机插入了若干第三类操作――查询操作。分析日志时,每遇到一次查询操作,都要报告出当前仓库中最大集装箱的重量。输入格式。
2024-01-31 21:27:20
1033
原创 1.30学习总结5
利用栈底位置相对不变的特征,可让两个顺序栈共享一个一维数组空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间的中间延伸。int top1;// 第一个栈的栈顶指针int top2;// 第二个栈的栈顶指针共享栈的判断条件进行说明。栈空条件:1号栈【top1==-1】;1号栈【top2==MAXSIZE】栈满条件:top2-top1=1。
2024-01-30 17:01:12
1300
1
原创 1.29学习总结4
学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为 1。现在有 n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从 1 到 n 编号,i 号同学的接水量为 wi。接水开始时,1 到 m 号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学 j 完成其接水量要求 wj 后,下一名排队等候接水的同学 k 马上接替 j 同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。
2024-01-29 17:15:18
1155
原创 1.28学习总结3
②函数merge(a, m, b, n)对两个已是升序的数组a、b进行归并(a、b中分别有m、n个数据),归并后的结果仍然是升序的,并将归并结果返回给主调函数。函数merge(a, m, b, n):比较a[0]、b[0]中较小的数并存入c数组,再用较大的数与另一数组中下一个元素比较,以此类推,直到元素均存入c数组。5)flag插入到该元素的后面,如果已排序所有元素都大于flag,则将flag插入到下标为0的位置;3)从余下的 N-1 个元素中,找出数组中最小的元素,重复上述步骤,直到排序结束。
2024-01-28 19:51:54
1031
1
原创 1数据结构
数据结构:数组(array) , 链表(list), 树(tree),栈(stack), 队列(queue), 集合(set),映射表(map)
2024-01-26 23:34:02
396
2
原创 1.25学习总结1
然后再从V2出发,重复步骤直至到达所有的邻接顶点都被访问过的顶点Vn为止,接着,退回一步,退到前一次刚访问过的顶点,看是否还有其它没有被访问过的邻接点。如果一个图是由点和边所构成的,称为无向图,记作G=(V, E),其中V表示无向图G的点集合,E表示图G的边集合。从图的某一顶点出发,首先依次访问该顶点的所有邻接点,再按这些顶点被访问的先后次序依次访问与他们相邻接的所有未被访问的顶点,重复此过程,直至所有顶点均被访问为止。如图,点(1,2,3,4,5)和边(1-2,1-3,1-5,2-4,3-5)组成图。
2024-01-25 21:58:25
1036
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人