随笔分类 -  算法基础课第二章数据结构

摘要://第一个,区间被划分成[1, mid], [mid + 1, r] int bsearch_1(int l, int r) { while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; //判断mid是否满足性质 else l = 阅读全文
posted @ 2021-05-14 21:10 梨花满地 阅读(59) 评论(0) 推荐(0)
摘要:参考快速幂 什么意思呢? 就是优化指数 传统的指数计算 比如计算510000,那么就要计算10000次 而快速幂计算 510000,我们可以计算 255000,一下就把运算次数减少了5000,也可以继续优化,比如可以继续化成625 * 2500就这样一直优化,举一个简单的例子 计算25 如果当前指数 阅读全文
posted @ 2021-04-18 22:00 梨花满地 阅读(87) 评论(0) 推荐(0)
摘要:位运算计算出每一个当前2n(n的范围是0道2n-1)然后加上字符'0'就可以 #include <iostream> #include <cstring> #include <algorithm> using namespace std; int main() { int n; cin >> n; 阅读全文
posted @ 2021-04-15 21:01 梨花满地 阅读(51) 评论(0) 推荐(0)
摘要:字符串哈希-aciwng原题链接 定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。 字符串中只包含大小写英文字母和数字。 输入格式 第一行包含整数 n 和 m,表示字 阅读全文
posted @ 2021-04-12 21:52 梨花满地 阅读(58) 评论(0) 推荐(0)
摘要:该算法的作用 可以把多个点纳入同一个集合,可以在将近O(1)的时间复杂度内找到两个点是否在同一个集合 原理实现 原理 : 比如说有10个点(1-10),开始时把他们都分到10个不同的集合里面,然后开始合并集合,例如合并1,2,3为一个集合 那么,把2, 3的祖宗结点都设为1,p[2] = 1, p[ 阅读全文
posted @ 2021-04-12 21:36 梨花满地 阅读(61) 评论(0) 推荐(0)