算法
文章平均质量分 91
算法
长安1108
这个作者很懒,什么都没留下…
展开
-
算法刷题应用知识补充--基础算法、数据结构篇
所以,初步的认知已经建立了。所以,a = a ^ b,a是第一行代码执行后变化的a,b是原来的a,所以,将a拆开(得到原来的a 和 b)并且将b换成原来的a:a ^ b ^ a,再使用交换律,得到a ^ a ^ b,最后等于原来的b。所以在求4的次幂时,因为2的偶次幂,一定是4的次幂,所以,我们在找到2的次幂数的基础上,再找到那些是2的偶次幂的数,那些数mod3==1。b = a ^ b,此时a是变化之后的a,将其拆开:a ^ b ^ b,此时a是变化之前的a,所以,就等于a ^ 0,最终等于原来的a。原创 2024-04-05 23:20:55 · 638 阅读 · 0 评论 -
算法刷题应用知识补充--搜索与图
这里写目录标题DFS题结BFS题结一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录DFS题结BFS题结一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录原创 2024-04-07 20:49:07 · 213 阅读 · 0 评论 -
C++算法补充---STL
printf(“%.xf”,x)可以实现四舍五入.0f,是保留到整数,四舍五入仅用于整数四舍五入如果用于小数:那么要满足要保留的位数后面还有两个有效数字,编号为1、2,2号不能为0如果是结构体,那么传入引用。原创 2024-04-01 09:28:17 · 1198 阅读 · 0 评论 -
算法知识补充
因为可以在尾部追加 所以要考虑指定位置的前一个位置 如果前一个位置有值 那么就合法 所以while循环以及if循环里条件都是p 因为p是指定位置的前一个位置。而删除算法没有追加 所指定的位置必须有值 才合法 所以考虑前一个位置p的后继 也就是p->next 所以while和if的条件都是p->next;可以理解为if里面的条件 整体对while取反 因为while里的条件都是满足步骤1的条件 所以取反 也就意味着不满足步骤1条件的。1.通过循环到达指定位置的前一个位置。2.新建目标结点 (或删除目标结点)原创 2023-10-04 17:40:44 · 239 阅读 · 0 评论 -
算法考前必看
如果计算过程中出现int越界,那么就需要在等号右边计算的时候就加上(long long),之后看运算结果能不能回到int范围,如果回不到,那么等号右边的变量也要用long long 类型来接收,要是可以回到int,那么就可以使用int(建议都改为long long,因为算法对空间很宽松)比较时尽可能用乘法,可以移项的移项。原创 2024-03-02 21:54:05 · 384 阅读 · 0 评论 -
算法错题本
上图中 在循环里 不要定义int i = 0;这样的话每次循环都会使其为0;低级错误 只能在for循环里设置为int i= 0;利用for循环 计数器++ 求长度终止条件(跳出循环条件):可以看到定义好了数组之后 不赋值的地方 就是乱码 以此为终止条件。原创 2024-04-01 09:27:49 · 965 阅读 · 0 评论 -
算法--时空复杂度分析以及各个数据量对应的可使用的算法(C++;1s内)
这里写目录标题由数据范围反推算法时间复杂度以及算法内容一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录由数据范围反推算法时间复杂度以及算法内容一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录原创 2024-02-28 20:56:44 · 359 阅读 · 0 评论 -
算法--动态规划(线性DP、区间DP)
从顶部出发,可以向左下或者右下移动,最后形成一条路径,找到一条路径使得路径上的数字之和最大例如这样一个序列,最长子序列就是 1 2 5 6,长度最长是4。原创 2024-02-27 21:32:03 · 911 阅读 · 0 评论 -
算法--贪心
之后,对于第二点,要证明ans >= cnt ,那么就要证明ans >= cnt的最大值,而cnt的最大值就是所有的区间都没有重复点(如下图),那么根据我们的推演算法,每个区间都要选中一点,且每个区间有且只选一点,那么在这种产生最大值的区间排列情况下,我们的推演算法是最小值,所以,ans 只能 >= ant。排完序后,定义res=0,用来存储答案,ed=-2e9,-2e9表示负无穷,ed是用来表示当前所选中的点,(注意,当前所选中的点只会保留最新的点,其他点如果被刷下去,会用res++存储,所以是合理的)原创 2024-02-26 20:28:13 · 915 阅读 · 0 评论 -
算法--动态规划(背包问题)
假设我们有N个物品,我们的背包的体积是V,N个物品每个物品有两个属性,分别是v体积、和w价值,或者说权重,每个物品要么不选,如果选的话,只能选一次我们的目标是:要选出一些物品,在总体积能装的下的情况下(不一定必须装满),争取价值之和最大化完全背包问题,是每个物品有无限个,每个物品都可以选无限次多重背包问题,是每个物品的个数不一样,也就是每个物品的可选次数不一样。原创 2024-02-21 19:22:34 · 886 阅读 · 0 评论 -
算法--数论二
这个算法可以以n的三次方的时间复杂度来求一个线性方程组的解(即x1,x2,x3,…但是同时要注意,方程组的解有三种情况,上图。原创 2024-02-16 21:19:42 · 439 阅读 · 1 评论 -
算法--数论一
从定义出发,判断是否为质数1、小于2的数,统一返回false2、遍历 i 从2到小于n(即除去1和n)判断是否有n % i == 0 的,表示这中间有i可以整除,如果有,返回false最后返回true。原创 2024-01-31 12:31:01 · 803 阅读 · 0 评论 -
算法--最小生成树和二分图(末尾算法有邻接矩阵辨析)
之后dist[t]>dist[j]是因为dist[t]是上一轮中的dist的最小值,如果找到dist[j]原创 2023-12-12 21:53:42 · 1067 阅读 · 0 评论 -
算法--最短路
只有一个起点,到其他某个点的最短路多个起点。原创 2023-12-05 22:18:43 · 1206 阅读 · 0 评论 -
算法--搜索与图
会优先向深处搜索 一旦到达最深处 那么会回溯 但是在回溯的过程中 会边回溯边观察是否有能继续深入的点 如果有 那么继续深入搜 直到他确认该点深处都被搜过了 才会放过这个点 继续回溯。之所以DFS没有最短路 如上 加入加一条边 那么要搜索到左下角那个点的话 DFS可能返回的路径是3步 但是最短的是2步 所以不具有最短路性质。但是我们不需要新建一颗树 而是存放每一次搜索的路径 并且也需要自己写一个栈 系统会有一个隐性栈 帮我们维护栈。同时回溯的时候 要恢复现场 恢复搜索前的现场 如下图。原创 2023-11-15 17:37:00 · 175 阅读 · 0 评论 -
算法--数据结构+STL
所有的结点都在e[]数组里 但是他们的排序不是按照e[]的下标按照顺序连续排序的 他们的排序是一个链表 存在ne[]数组里。所有的结点都在e[]数组里 但是他们的排序不是按照e[]的下标按照顺序连续排序的 他们的排序是一个链表 存在ne[]数组里。注意 k结点的下一个结点的下标不一定是k+1 而是ne[k] 这就是k结点的下一个结点在e[]数组中的下标。e[k] 是指下标为k的e[]数组中的值 也就是在e[]数组中 下标为k的值。比如 第k个插入的点 他的下标是k-1 这里说的就是在e[]数组中的下标。原创 2023-11-09 17:42:23 · 346 阅读 · 0 评论 -
算法--基础算法
快速排序 归并排序 STL-sort 三者时间差不多。原创 2023-11-06 22:29:06 · 144 阅读 · 0 评论