04 2022 档案

摘要:一、欧几里得算法 1.简介 欧几里得算法又称辗转相除法,这种算法我们在高中的数学书上都有所了解,这种算法的用途是旨在求两个数的最大公约数(英文缩写为gcd)。 2.算法分析 例如,如果我们要求去寻找12和16的最大公约数,我们可以这样操作: 第一步:16 mod 12 = 4; 第二步:12 mod 阅读全文
posted @ 2022-04-26 20:13 YutaoJiang 阅读(17) 评论(0) 推荐(0) 编辑
摘要:前缀和顾名思义就是求一个序列的前缀之和,它能够在O(1)的时间复杂度内求得区间的值。 前缀和的最基本用法: 典型例题E. Yonagi and YOASOBI #include<bits/stdc++.h> using namespace std; const long long N=1e6+7; 阅读全文
posted @ 2022-04-24 17:04 YutaoJiang 阅读(6) 评论(0) 推荐(0) 编辑
摘要:一、什么是差分数组? 差分数组本质上来说就是一个数组,可以用O(1)的时间处理区间修改。 二、差分数组的定义式 设原数组为a数组,差分数组为d数组,则对于i∈[2,n],都有d[i]=a[i]-a[i-1]. 三、差分数组的性质 1.当我们需要更新区间[l,r]时候(仅指加减运算),我们仅仅可以只更 阅读全文
posted @ 2022-04-24 00:21 YutaoJiang 阅读(20) 评论(0) 推荐(0) 编辑
摘要:什么是线段树? 线段树言下之意就是将线段分解为一颗树,并且这颗树是一颗二叉树,树上的每一个节点都具有某些性质。 线段树有什么用? 线段树主要能够在O(logn)的时间复杂度上解决区间上的问题。 题目引入:AcWing243.一个简单的整数问题2 本题目就是很简单的线段树的板子题,可以用来当做模板来使 阅读全文
posted @ 2022-04-19 20:29 YutaoJiang 阅读(109) 评论(0) 推荐(0) 编辑
摘要:什么是最近公共祖先? LCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先 百度百科 例如: 对于点9和点5,它们的最近公共祖先是点2;对于点4和点2,它们的最近公共祖先是点2。 这里答案是显而易见,但是如果我们需要用暴力来计算的 阅读全文
posted @ 2022-04-15 21:37 YutaoJiang 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示