自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Codeforces Round 935 (Div. 3) E. Binary Search【二分本质+分类讨论】

显然当 p 未排序时二分查找的结果不一定为 x,现在你希望进行不超过两次交换操作,使得操作后的排列 p 能使得二分查找的结果为 x。可以发现其实对于(2)(3)俩种情况都是可以直接交换x和pl的,所以我们合并这俩种情况,综合分析我们可以得出如下结果。空间复杂度:O(1),不考虑输入所占空间,只使用了常数个额外变量。一次交换操作为:选择 1≤i,j≤n,交换 pi​,pj​。时间复杂度:O(n),找到x所在位置需要遍历一遍数组p。(1)二分查找结束时,pl==x,(2)二分查找结束时,pl>x。

2024-04-04 10:59:04 324 1

原创 Codeforces Round 935 (Div. 3) F. Kirill and Mushrooms【枚举+贪心+优先队列】

首先更形象的描述一下题意,假设我们选择k个数,那么就会有k-1数变为0并且是p数组前k-1位置描述的k-1个位置变为0,那么对于v(p(0)),v(p(1)),...v(p(k-1))就会全部变成0,根据题意,变成0之后就不能选择了,然后我们就只能从除了这k-1个位置之外的其他位置选择数了,然后要求我们在能获取最大魔力的基础上,选择最少的位置。请注意,采摘两朵蘑菇后,第三朵蘑菇的魔力将变为 0。对于每个测试用例,输出两个用空格隔开的整数,分别为可以酿造的灵药的最大浓度和基里尔为此需要使用的最少蘑菇数量。

2024-04-03 11:09:45 460

原创 leetcode 3098. 求出所有子序列的能量和【记忆化搜索】

首先将所有元素从小到大排序,任意元素之间的最小差值等价于所有相邻元素差值的最小值,然后我们需要从n个元素中选出刚好k个元素,求所有这样的子序列的能量值的和,对于所有的长为k的子序列我们可以采取记忆化搜索的方式来处理,mem[i][j][v]表示从第i个元素开始并且选择了j个元素并且选择的所有元素中相邻元素的最小差值为v的所有子序列的能量值之和,知道了状态定义然后直接记忆化搜索即可。中唯一一个长度为 2 的子序列是。由于答案可能会很大,将答案对。空间复杂度:O(n^3*k)。两个元素的差值绝对值的。

2024-04-01 12:32:30 371

原创 leetcode 331. 验证二叉树的前序序列化【计数器】

当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如。给定一串以逗号分隔的序列,验证它是否是正确的二叉树的前序序列化。编写一个在不重构树的条件下的可行算法。每个以逗号分隔的字符或为一个整数或为一个表示。例如,上面的二叉树可以被序列化为字符串。序列化二叉树的一种方法是使用。你可以认为输入格式总是有效的。时间复杂度:O(n)。空间复杂度:O(1)。

2024-03-31 09:45:51 368

原创 牛客周赛 Round 38 G.小红的区间删除【树状数组】

时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 262144K,其他语言524288K。

2024-03-26 13:59:51 411

原创 牛客周赛 Round 38 F.小苯的回文询问【挖掘性质等价转换+线段树】

时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 262144K,其他语言524288K。

2024-03-26 11:25:51 795

原创 牛客周赛 Round 38 C.小红的字符串构造【构造】

时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。

2024-03-26 10:27:08 567

原创 Educational Codeforces Round 163 (Rated for Div. 2)【思维+数学+前缀和】

映射成0,a,b,c,...依次映射成1,2,3,...,我们可以暴力枚举所有偶数长度的区间,不妨设这个区间长度为2L,那么就需要判断每一个a[i]==a[i+L] (i表示这个区间前半部分的下标)是否成立,我们可以通过一个公式来判断是否相等,公式为(ai-aj)*(ai-aj)*ai*aj,只有当这个公式的值为0时俩个位置才可以相等,要使得这个等式为0,那么只需要(ai-aj),ai,aj这三个中的某一个等于0即可,(ai-aj)表示俩个位置字符相同的情况,ai或者aj表示只要某个位置为?

2024-03-24 10:29:31 277

原创 Codeforces Round 923 (Div. 3) F. Microcycle【Kruskal算法思想+并查集+dfs找环】

给定一张 n 个点,m 条边,边有边权的无向图,无重边自环,不保证连通。定义一个简单环为不经过重复点与重复边的环路径,保证全图至少有一个简单环。记一个简单环的权值是环上最小的边权,你需要找到任意一个全图中权值最小的一个简单环并输出它。时间复杂度:O(n+mlog(m)),n表示点数,m表示边数。空间复杂度:O(n+m),n表示点数,m表示边数。

2024-03-23 11:24:53 279

原创 leetcode 2617. 网格图中最少访问的格子数【单调栈优化dp+二分】

需要经过的最少移动格子数,如果无法到达右下角格子,请你返回。时间复杂度:O(n*m*(log(n)+log(m)))。上图展示了到达右下角格子经过的 4 个格子。上图展示了到达右下角格子经过的 3 个格子。空间复杂度:O(n*m)。无法到达右下角格子。

2024-03-22 15:41:39 693

原创 Codeforces Round 924 (Div. 2) D. Lonely Mountain Dungeons【枚举+贪心+数学】

假设某一个ci,总对数为C(ci),我们枚举分为i组,对于ci<=i的组可以直接计算,但是对于ci>i的组不好计算,那么首先每一组内平均分配每一个组拥有ci/i个元素,然后还会剩下ci%i个元素,多出来的ci%i个元素平均分配到ci%i组,每一组一个。上面的计算公式中C(ci)表示总对数,C(ci/i)*i表示平均分配给每一组的对数,(ci/i)*(ci%i)表示多出来的ci%i个元素分配在ci%i个组,每个组内原本有(ci/i)个元素形成的对数,所以这一部分也是要减去的。空间复杂度:O(n)。

2024-03-22 12:11:58 664

原创 Codeforces Round 926 (Div. 2) D. Sasha and a Walk in the City【树形dp】

最终答案就是f(1)+f(2)+...f(n)+1,那么最后为什么还要加1呢,这个加1的树中所有点都不染色的情况。在第一个测试用例中,有 2^3−1=7 个集合是可以选的,除了集合 {1,2,3} 以外,因为如果在城市中只有 {1,2,3} 中的路口是危险的,那么路口 1,2,3 对应的道路构成的简单路径 1−2−3 包含了 3 个危险路口。在第二个测试用例中,有 2^4−1=15 个集合是可以选的,但是其中 {1,2,3,4},{1,2,3},{1,3,4},{2,3,4} 不是合法的集合。

2024-03-21 12:37:16 1098

原创 Codeforces Round 925 (Div. 3) F. Chat Screenshots【拓扑排序找环】

第 i 行包含 n 个整数 aij ( 1≤aij≤n ,所有 aij 都是不同的)--参与者显示给参与者 ai0 的顺序,其中 ai0 --截图的作者。给出 n 个人进行的聊天室中,k 个人做的截图,每个截图中截图者都在第一位置,其后各位按照发帖时间前后确定。每个测试用例描述的第一行包含两个整数 n 和 k ( 1≤k≤n≤2⋅10^5,n⋅k≤2⋅10^5 )--聊天参与者人数和发布屏幕截图的参与者人数。时间复杂度:拓扑排序O(n),输入k张截图,每张n个数O(n*k),最终时间复杂度O(n*k)。

2024-03-20 10:52:36 271

原创 Codeforces Round 925 (Div. 3) G. One-Dimensional Puzzle【推公式+组合数学+隔板法】

四种图形的个数分别是c1,c2,c3,c4,首先只考虑第一种图形和第二种图形,如果abs(c1-c2)>1,那么必然多出一个第一种图形或者第二种图形无法插入链中,这个可以自己画图分析一下,这里不做具体描述,然后就是abs(c1-c2)<=1的情况。对于c1==c2-1或者c1==c2+1俩种情况,对于图形3和图形4都有max(c1,c2)种插入位置,同上分析,首先不妨设c=max(c1,c2),那么这里就是C(c+c3-1,c-1)*C(c+c4-1,c-1)。空间复杂度:O(n),n=2e6。

2024-03-19 17:37:54 409

原创 leetcode1793. 好子数组的最大分数【单调栈+双指针】

我们把每一个位置的高度画成一个对应高度的小矩形,那么就会形成一个柱状图,那么区间的长度*区间最小值的最大值本质就是最大矩形的面积,那么每一个位置都有可能成为矩形的高,那么我们不妨可以枚举每一个位置作为矩形的高,那么这个以当前选择位置为高的矩形左右俩边选择的所有位置的高都必须大于等于当前位置的高,左右俩边尽量延伸的更远能保证矩形的面积更大,那么实际上就是需要我们找当前为高的位置的左边最近的比当前位置小的位置和右边最近的比当前位置小的位置,这个过程可以使用单调栈进行维护。空间复杂度:O(1)。

2024-03-19 11:22:43 360

原创 Codeforces Round 927 (Div. 3) F. Feed Cats【差分+排序+dp】

其中lp[i]表示覆盖位置 i 的所有线段区间的左端点的最小值,如果没有区间覆盖 i ,那么lp[i]=i,cnt表示覆盖位置i的线段区间数,其中lp通过排序后可以使用双指针预处理好,cnt可以差分预处理。f(i,1)=max(f(lp[i]-1,0),f(lp[i]-1,1))+cnt,然后max(f(lp[i]-1,0),f(lp[i]-1,1))是等价于f(lp[i],0)的。定义f(i,1/0)表示是否投喂第i个位置能喂养的最多猫的个数,那么就有如下状态转移。时间复杂度:O(n+m)。

2024-03-18 11:23:03 318

原创 Codeforces Round 932 (Div. 2) C. Messenger in MAC【挖掘计算公式性质+排序+dp】

/选择当前位置,这里和MAX取min可以防止爆int,就可以不使用longlong了,因为如果f[i][j]超过MAX和置为MAX不影响结果,因为总代价l<MAX,所以超出l的部分是没有意义的。定义f[i][j]表示到了第i个位置并且选择了j个元素最小代价,a的代价就是所有ai的和,b的代价就是max(bi)-min(bi) (i属于s),s是我们选中的元素的集合。首先如果按照从小到大的顺序排列为[b1,b2,b3,...,bk],代价就是|b1-b2|+|b2-b3|+...+|b(k-1)-bk|

2024-03-17 18:23:38 1559

原创 redis的安装,启动和关闭

如果使用完了需要关闭redis服务,可以通过ctrl+c或者直接关闭终端来关闭redis服务.启动redis客户端之后,就可以在客户端使用redis了。

2024-03-16 15:27:03 284

原创 Codeforces Round 932 (Div. 2) D. Exam in MAC【正难则反+容斥原理】

cnt(x+y,y-x)表示x+y和x-y都属于s的所有整数对(x,y),那么不妨设x+y=si,y-x=sj,那么x=(si-sj)/2,y=(si+sj)/2,由于x和y都要求是整数,根据上述俩个式子可以得出,也就是要求si和sj的奇偶性相同即可,假设s中有odd个奇数,有even个偶数,那么这种情况满足要求的整数对数目就是(odd)*(odd+1)/2+even*(even+1)/2。对于这个集合,需要计算出使 0≤x≤y≤c, x+y。包含在集合 s 中的整数对(x,y)的数目。

2024-03-16 11:34:58 1029

原创 leetcode 2312. 卖木头块【划分型dp+棋盘切割类型dp】

这个题目是一个经典的棋盘切割dp,严格来说其实也算一个划分类型dp,这个题目要注意的就是每次切割都是完全切割的,不存在那种切到一半再转方向的那种切割,如果不是完全切割切到一半可以转方向那种,我感觉这个题目就难多了,但是这个题目说了是完全切割,一刀直接切到底的那种,这样就简单多了,这个时候属于经典的棋盘切割dp,直接考虑dp即可。

2024-03-15 10:46:38 907

原创 Codeforces Round 933 (Div. 3) D. Rudolf and the Ball Game【模拟+set对集合去重】

每次测试时限:2 秒每次测试的内存限制:256 兆字节输入:标准输入输出:标准输出。

2024-03-13 10:59:39 678

原创 leetcode 3077. K 个不相交子数组的最大能量值【划分型dp+式子等价变形】

唯一一种选 5 个不相交子数组的方案是:nums[0..0] ,nums[1..1] ,nums[2..2] ,nums[3..3] 和 nums[4..4]。等价转换为:f[i][j]=max(f[i][j-1],s[j]*w+f[i-1][L]-s[L]*w),i<=L<=n-k+i)f[i][i-1]=负无穷,划分i个子数组至少需要i个元素,i-1个元素无法划分出i个子数组,所以初始化为负无穷。f[i][j]表示前j个元素划分出i个子数组的最大能量值。f[0][j]=0,划分0个子数组能量值为0。

2024-03-11 11:40:44 810

原创 牛客周赛 Round 36 F.小红的好子串询问【树状数组】

时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。

2024-03-11 10:35:15 582

原创 leetcode 2386. 找出数组的第 K 大和【小根堆】

假设我们此时有一个数组[-1,-2,0,1,2,3],此时我们的最大子序列和为0+1+2+3=6,我们需要求得是第k大子序列和,我们需要将当前最大子序列和变小,要变小就是要减去某些正数或者加上某些负数,我们将所有的负数都取绝对值,那么此时的操作就变为了减去某些数。然后考虑元素3,可以插入[1,2]的末尾变为[1,2,3],或者替换[1,2]的末尾元素2变为[1,3]然后考虑元素2,可以考虑插入[1]的末尾变为[1,2],或者替换[1]的末尾元素1变为[2]然后考虑元素1,可以插入原来序列的末尾,变为[1]

2024-03-09 11:11:32 298

原创 牛客周赛 Round 35 G.小红的子序列权值和(hard)【组合数+表达式等价转换】

时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。

2024-03-08 16:32:03 586

原创 leetcode 3068. 最大节点价值之和【树形dp】

首先我们可以发现一个明显的性质就是每个结点位置的最终值和具体的操作次数没有关系,只和操作次数的奇偶性有关,当前位置i如果操作次数为奇数,那么当前位置值变为nums[i]^k,否则当前位置的值为nums[i],此时状态就把一个非常大的无限空间的状态就缩小为了一个有限的搜索空间,就可以考虑dp了,dp的关键就在于怎么设计状态,通过上面分析我们可以知道只和操作次数的奇偶性有关,我们设计状态只需要设计奇偶性即可。f[x][0]表示结点x操作偶数次时,子树x除去x的最大价值和。9 是可以得到最大的价值之和。

2024-03-07 12:02:17 1072

原创 leetcode 2581. 统计可能的树根数目【换根dp】

如上图所示,左边图最开始0号结点为根结点,右图所示为换根操作,把根换为1号点,我们可以发现换根之后相对于换根的前一步比较,只有换根的俩个点之间父子关系发生翻转,另外的其他所有点之间的父子关系不变,发现这个性质之后我们就可以根据换根造成的影响来计算这个新树中满足要求的猜测数量,然后判断这个数量是否大于等于k,从而更新答案。根为节点 3 ,正确的猜测为 [1,0], [2,1], [3,2], [3,4]根为节点 1 ,正确的猜测为 [1,3], [1,0], [2,4]Bob 的猜测用二维整数数组。

2024-02-29 11:20:58 1420

原创 leetcode 2867. 统计树中的合法路径数目【筛质数+贡献法】

由于我们需要记录某个点出发在不经过质数点的情况最多经过多少个点,我们可以用sz[x]记录从x出发在不经过质数点的情况下最多会经过几个点,类似记忆化的思想,所以枚举每一个质数贡献的时候,如果遇到某个点的sz[y]已经被计算过了,直接拿来用即可,避免重复搜索。- (1, 2) 因为路径 1 到 2 只包含一个质数 2。- (1, 4) 因为路径 1 到 4 只包含一个质数 2。- (1, 2) 因为路径 1 到 2 只包含一个质数 2。- (1, 4) 因为路径 1 到 4 只包含一个质数 2。

2024-02-27 11:33:12 1230 3

原创 Acwing 5475. 聚会【多源bfs】

所有测试点满足 1≤n≤10^5,0≤m≤10^5,1≤s≤k≤min(n,100),1≤ai≤k,1≤u,v≤n,u≠v。请你帮助奶牛们计算,对于每个谷仓,如果挑选其为宴会举办地,则举办宴会需要付出的总运输成本的最小可能值是多少。共一行,输出 n 个整数,其中第 i 个整数表示在第 i个谷仓举办宴会需要付出的总运输成本的最小可能值。接下来 m 行,每行包含两个整数 u,v,表示第 u 个谷仓和第 v 个谷仓之间存在一条双向道路。约翰的农场有 n 个谷仓,编号 1∼n,谷仓之间有 m 条。

2024-02-25 12:42:47 714

原创 洛谷 P1069 [NOIP2009 普及组] 细胞分裂【分解质因数+预处理优化】

首先肯定不能暴力,因为数据非常大,无法用常规整数类型存储,但是可以知道的是m1,m2都是可以用常规数据类型存储的,同时我们知道的是任意一个数都可以分解为若干质因子的乘积,所以我们可以对m1进行质因数分解,就可以得出m1拥有的各种质因子的个数,假设m1拥有质因子2的个数为3,由于这里是m1^m2,所以说总共有质因子2的个数为3*m2,对于每个分解出来的质因子个数都乘以m2,就可以得到m1^m2的各种质因子的个数。第一行,有一个正整数 N,代表细胞种数。NOIP 2009 普及组 第三题。

2024-02-24 11:38:22 977

原创 洛谷 P1038 [NOIP2003 提高组] 神经网络【拓扑序处理】

这个题目题目背景比较复杂,然后题目也比较长,但是读完题目,你会发现,这就是一个拓扑序结构,然后给出了传递的规则和公式,所以我们直接根据拓扑序处理即可,思路是非常简单的,但是可能细节比较多,稍不注意就会出错,下面描述一下几个细节处理的地方。下图是一个简单的三层神经网络的例子。细节1:输入层点的阈值U[i]是没有意义的,所以输入点的C[i]就是C[i],非输入点后面还要减去U[I],在前面减去和在后面减去是没有区别的,对于非输入层的点在输入的时候直接C[i]-=U[i]即可。NOIP 2003 提高组第一题。

2024-02-23 12:31:59 1231

原创 洛谷 P1027 [NOIP2001 提高组] Car 的旅行路线【推公式+勾股定理+最短路】

接下来有 S 行,其中第 i 行均有 7 个正整数xi1​,yi1​,xi2​,yi2​,xi3​,yi3​,Ti​,这当中的 (xi1​,yi1​),(xi2​,yi2​),(xi3​,yi3​),分别是第 i 个城市中任意 3 个机场的坐标,Ti​ 为第 i 个城市高速铁路单位里程的价格。S 表示城市的个数,t 表示飞机单位里程的价格,A,B 分别为城市A,B 的序号。对于 100% 的数据,1≤n≤10,1≤S≤100,1≤A,B≤S。每组的第一行有 4 个正整数 S,t,A,B。

2024-02-22 11:58:19 710

原创 洛谷 P1016 [NOIP1999 提高组] 旅行家的预算【贪心】

首先考虑一下简化版,首先我们认为汽车油箱的容量是无限的,那么这个题目就简单多了,每个位置城市肯定都是从当前位置前面所有的城市中油价最低的城市过来,这样就能保证总花费最少,但是这个题目难就难在汽车的容量是有限制的,这就相当于把这个题目加了一个限制,就是当前位置城市只能从当前位置城市前面一定区间内的城市转移过来,下面我们考虑一种贪心策略。那么为什么加到能刚好到达下一个到达的城市就是最优的,因为我们找到的下一个城市油价更低,在当前位置多加一些油,不如到下一个城市在加,因为下一个城市花费更低。

2024-02-21 20:48:47 769

原创 leetcode 105. 从前序与中序遍历序列构造二叉树【构造二叉树】

每次在inorder中暴力找根结点的时间复杂度为O(n),我们可以先用一个哈希表记录inorder中所有数字的下标,就可以把这个找的过程优化到O(1),根据上述分析,直接递归构造即可,具体分析见代码处.,请构造二叉树并返回其根节点。

2024-02-20 12:25:49 766 1

原创 Acwing 5472. 铺瓷砖【思维+贪心】

结论:只有当当前列有俩个空格子时,才能考虑填充,当当前这一列左边有空格时优先填充左边,否则再看右边是否有空格,右边又空格那么也一定要填充右边。时间复杂度:枚举每一列,所以时间复杂度为O(n),还是一个大小为8的常数。注意,n 的具体大小并未直接给出,其取值范围在数据范围栏。一个整数,表示可以同时铺放的 L 形瓷砖的最大数量。我们要在一个 2×n 大小的方格矩阵上铺瓷砖。构成的字符串,表示给定的 2×n 方格矩阵。空间复杂度:O(n),还有一个大小为2的常数。表示),要么是已经铺上瓷砖的(用。

2024-02-19 11:24:19 536

原创 Acwing 5471. 数对推理【思维+模拟】

如上图所示,上边是a的数对,下边是b的数对,我们对所有数对进行编号,同时红色线连接表示俩个数对恰好有一个公共数,那么什么时候农夫约翰可以截取到俩人的数对的公共数呢,肯定是当a中的每一个数对和b中的数对的所有有红色线连接数对的公共数只有一种,此时可以通过a连接到b的红线知道他们俩个人数对的公共数,或者是当b中的每一个数对和a中的数对的所有有红色线连接数对的公共数只有一种,此时可以通过b连接到a的红线知道他们俩个人数对的公共数。初始时,贝茜和贝蒂都只知道自己拥有的数对,而不清楚对方拥有的数对。

2024-02-18 18:05:37 779

原创 牛客小白月赛87 E.小苯的数组构造【构造+贪心】

时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K。

2024-02-17 10:49:44 841 1

原创 leetcode 3031. 将单词恢复初始状态所需的最短时间 II【挖掘性质+枚举+字符串哈希】

这个题目需要抓住一个关键点就是在前面删除的字符是确定的,但是在尾部插入的字符我们是可以随意控制的,假设我们经过t次操作后回到初始状态,那么此时我们已经删除了tk个字符,如果tk>=n,也就是题目给定的字符串中的字符已经全部删除了,剩下的全是我们新加入的,由于新加入的我们可以随意控制,所以经过此时的t次操作是肯定可以回到初始状态的,也就是说答案不超过(n+k-1)/k,也就是原字符串中的所有字符都拿掉就一定可以自己控制回到初始状态。第 1 秒,移除 word 的前缀 "aba",并在末尾添加 "bac"。

2024-02-16 10:45:47 1110

原创 leetcode 365. 水壶问题【裴蜀定理】

ax+by=gcd(x,y),根据裴蜀定理,这个等式一定存在(a,b)满足这个等式,那么只有当z是gcd(x,y)的倍数时才能凑出z,多少倍就对等式俩边乘以多少即可,这个是不影响等式的成立的。当一个桶的容量是x,另一个桶的容量是y,那么每次的变化量必然是x或者y,那么这个时候就会有一个疑问了,如果我往一个不满的桶里面倒水或者将水倒掉变化量不就不是x或者y了吗,虽然这样看变化量不是x或者y,但是进一步分析你会发现这种操作实际上是没有意义的。当x==0,y==0时,那么此时只能凑出0。有两个水壶,容量分别为。

2024-02-15 11:06:29 1199

原创 AtCoder Beginner Contest 340 F.F - S = 1【拓展欧几里得算法+裴蜀定理】

空间复杂度:使用了常数个变量,空间复杂度为O(1),如果考虑严谨一点,exgcd里面每次使用了一个变量记录返回值,那么空间复杂度可以看为O(log(min(x1,y1))。这个题目需要知道裴蜀定理和拓展欧几里得算法,还需要知道一个不太常用的三角形计算面积的公式,裴蜀定理详情见下面链接百度百科。(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。时间复杂度:利用到了拓展欧几里得算法时间为O(log(min(x1,y1))。

2024-02-14 11:49:05 1282

空空如也

空空如也

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

TA关注的人

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