04 2021 档案

算法学习(5):ST表
摘要:ST表(Sparse Table,稀疏表)是一种简单的数据结构,主要用来解决RMQ(Range Maximum/Minimum Query,区间最大/最小值查询)问题。 //进行预处理,计算区间最大值 int f[MAXN][21]; // 第二维的大小根据数据范围决定,不小于log(MAXN) f 阅读全文

posted @ 2021-04-30 17:45 小星◎ 阅读(223) 评论(0) 推荐(0)

算法学习(4):gcd和exgcd
摘要:GCD inline int gcd(int a,int b) { return b == 0 ? a : gcd(b,a % b); } EXGCD 第一种 int exgcd(int a, int b, int &x, int &y) { if (b == 0) { x = 1; y = 0; 阅读全文

posted @ 2021-04-30 17:43 小星◎ 阅读(91) 评论(0) 推荐(0)

算法学习(3):快速幂
摘要:快速幂 long long fpow(long long a,long ,long b,long long mod) { long long res = 1; while(b) { if(b & 1) res = (res * a) % mod; a = (a * a) % mod; b >>= 1 阅读全文

posted @ 2021-04-30 17:37 小星◎ 阅读(45) 评论(0) 推荐(0)

算法学习(2):树状数组
摘要:树状数组(Binary Index Tree, BIT)。 最简单的树状数组支持两种操作,时间复杂度均为 : 单点修改:更改数组中一个元素的值 区间查询:查询一个区间内所有元素的和 #1.lowbit(x) lowbit(x) = ((x)&(-x)) 此操作为取x在二进制下的最后一位1(数字在计算 阅读全文

posted @ 2021-04-30 17:20 小星◎ 阅读(79) 评论(0) 推荐(0)

算法学习(1):并查集
摘要:并查集 并查集主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作: 合并(Union):把两个不相交的集合合并为一个集合。 查询(Find):查询两个元素是否在同一个集合中。 初始化: fa[i]=i; Find: 无压缩 int Find(int x) { if(fa[x]= 阅读全文

posted @ 2021-04-30 17:17 小星◎ 阅读(56) 评论(0) 推荐(0)

导航