![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 82
Freak587
这个作者很懒,什么都没留下…
展开
-
算法题——洛谷2
九九乘法表是学习乘法时必须要掌握的。在不同进制数下,需要不同的乘法表。请注意,乘法表中两个数相乘的顺序必须为样例中所示的顺序,不能随意交换两个乘数。给定P,请输出P进制下的乘法表。原创 2023-04-07 12:17:22 · 193 阅读 · 0 评论 -
算法题——洛谷1
给定n个整数a1a2⋯an, 求它们两两相乘再相加的和,即Sa1⋅a2a1⋅a3⋯a1⋅ana2⋅a3⋯an−2⋅an−1an−2⋅anan−1⋅an。原创 2023-04-04 23:03:53 · 338 阅读 · 0 评论 -
算法优化-
单调栈 (Monotone Stack) 是一种栈的数据结构,它的每个节点都必须按照递增的顺序存储数据,即栈中的元素都必须按照递增的顺序排列。同时,栈顶元素必须是一个单调递增的元素,即如果栈中有两个元素,一个元素比另一个元素大,那么前者必须是栈顶元素,后者则是次栈顶元素。单调栈是一种栈的数据结构,它的每个节点都必须按照递增的顺序存储数据,即栈中的元素都必须按照递增的顺序排列。同时,栈顶元素必须是一个单调递增的元素,即如果栈中有两个元素,一个元素比另一个元素大,那么前者必须是栈顶元素,后者则是次栈顶元素。原创 2023-04-03 22:09:54 · 97 阅读 · 0 评论 -
快速幂、树状数组、线段树、优先队列
其中,2^5、2^3、2^2、2^0分别表示二进制数101101中为1的位所对应的幂次。上式中每个乘积都可以通过不断平方得到,例如a^(2^5)可以通过不断将a平方5次得到。快速幂是一种用于快速计算一个数的整数次幂的算法。在这个实现中,我们使用了while循环和位运算来对指数进行二进制拆分,并使用了一个变量result来记录每个乘积的结果。使用这种方法,计算a的n次幂的时间复杂度为O(logn),比直接计算a^n的时间复杂度O(n)要快得多。原创 2023-03-20 22:33:56 · 54 阅读 · 0 评论 -
算法 贪心算法
具体来说,如果一个问题具有最优子结构性质,那么我们可以使用贪心算法来求解它,因为在贪心算法中,我们每次都选择当前最优的解,这个解也是子问题的最优解,因此可以用来构造全局最优解。具体来说,如果在贪心算法中每一步都选择当前最优的解,那么在到达最终解之前,所有的中间状态都是局部最优的,因此最终得到的解也是全局最优的。贪心选择性质是指在求解最优解的过程中,每一步所做的贪心选择都应该是当前最优的选择。总之,贪心选择性质和最优子结构性质是贪心算法能够使用的两个重要性质,它们保证了贪心算法可以得到问题的全局最优解。原创 2023-03-14 22:29:49 · 67 阅读 · 0 评论 -
鲽形网络算法
O(k),其中E(k)和O(k)分别表示偶数点序列和奇数点序列在第k个位置上的值,W(k,N)表示旋转因子,其计算方式为W(k,N) = exp(-2。将新的序列分成偶数点序列和奇数点序列,分别进行FFT计算。将得到的两个FFT序列进行合并,得到新的FFT序列,其中第k个元素的计算方式为:X(k) = E(k) + W(k,N)将新的采样序列分成两个部分,一部分为偶数点序列,另一部分为奇数点序列,分别进行FFT计算;将得到的偶数点FFT序列和奇数点FFT序列合并,得到新的FFT序列。Step 1:位反转。原创 2023-03-14 20:10:40 · 293 阅读 · 0 评论 -
为什么相反数难以实现递归?
但是,如果我们试图用递归的方式来计算相反数,我们会遇到无限递归的问题,因为我们需要计算-x,然后计算-y,然后计算-(-x),然后计算-(-y),以此类推,这个过程永远不会结束。通过这个定义,我们可以看出,如果我们将一个复数的虚部取相反数,就得到了它的相反数。复数可以用来实现递归的原因在于,复数中有一个重要的概念叫做共轭,通过共轭我们可以轻松地实现相反数的操作。需要注意的是,并非所有的数学运算都可以通过复数来实现递归,因此这种方法并不是适用于所有情况的通用解决方案,需要具体问题具体分析。原创 2023-03-14 19:01:03 · 129 阅读 · 0 评论 -
搜索算法——深度优先、广度优先
函数使用栈来实现深度优先搜索。它从起始节点开始,将其入栈。然后进入一个循环,弹出栈顶节点,如果该节点没有被访问过,则输出该节点,将其添加到已访问集合中,并将其邻居节点压入栈中。循环继续,直到栈为空。深度优先搜索(DFS)是一种用于图遍历或树遍历的算法。它的核心思想是尽可能地向深度方向遍历,直到到达最深处,然后返回上一个节点,继续向另一个方向遍历。如果当前节点没有被访问过,则输出该节点,将其添加到已访问集合中,并递归访问其邻居节点。深度优先搜索的实现可以使用递归或栈(迭代版本)来实现。原创 2023-03-13 21:58:08 · 2770 阅读 · 0 评论 -
三分法、二分法、尺取法、前缀和、差分
其基本思想是将区间按照三等分划分,然后根据函数值的大小关系判断极值可能存在的区间,并缩小搜索区间的范围。三分法的时间复杂度为 O(log(n)),其中 n 为精度要求需要的迭代次数。三分法比二分法的迭代次数更少,但每次迭代需要计算两个函数值,因此总的计算量可能更大。计算区间的中点 m1 和 m2,即将区间 [a, b] 分成三等分,其中 m1 = (2a + b) / 3,m2 = (a + 2b) / 3。分别计算函数在 m1 和 m2 处的取值 f(m1) 和 f(m2)。原创 2023-03-13 17:56:46 · 872 阅读 · 0 评论