基础知识
Forever 小白
这个作者很懒,什么都没留下…
展开
-
矩阵快速幂
M mPow(M m, int k)//M为struct M,里面有一个a[6][6] { M ans;//初始化为单元矩阵(对角线为1,其余为0) for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { if (i == j) ans.a[i][j] = 1; else ans.a[i][j] = 0; } } while (k > 0) { if (k & 1) ans = Mult原创 2020-09-21 21:45:35 · 48 阅读 · 0 评论 -
快速幂模板
long long fastpower(long long base, long long p, long long mod) { long long res = 1 % p; while (p > 0) { if (p & 1) res = (res * base) % mod; p >>= 1; base = (base * base) % mod; } return res; }原创 2020-08-19 21:53:34 · 75 阅读 · 0 评论 -
二分法
题目 给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回“-1 -1”。 输入格式 第一行包含整数n和q,表示数组长度和询问个数。 第二行包含n个整数(均在1~10000范围内),表示完整数组。 接下来q行,每行包含一个整数k,表示一个询问元素。 输出格式 共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。 如果数组中不存在该元素,则返回“-1 -1”。 输入样例: 6 3 1 2 2 3原创 2020-08-15 19:34:36 · 84 阅读 · 0 评论