
算法笔记
文章平均质量分 58
sdudyl
这个作者很懒,什么都没留下…
展开
-
数学基础和线性结构(快速幂、双指针、单调栈、差分和前缀和)
数学基础和线性结构①快速幂给定三个正整数a、b、m,求a^b%m法一:时间复杂度为O(b),会爆long longtypedef long long LL;LL LLpow(LL a, LL b, LL m){ LL ans = 1; for (int i = 0; i < b; i++) ans = ans * a%m; return ans;}法二:快速幂,时间复杂度为O(logb),不会爆快速幂核心:①如果b是奇数,那么有ab=a*a(b-1)②如果b是偶数,那原创 2021-04-02 00:58:13 · 218 阅读 · 0 评论 -
二分法(二分查找、二分答案)
二分法及拓展①确定一个数(最多一个)的位置#include<iostream>using namespace std;int binarySearch(int A[], int left, int right, int x){ int mid; while (left <= right) { //mid = (left + right) / 2; mid = left + (right - left) / 2; if (A[mid] == x) retur原创 2021-03-24 18:22:55 · 122 阅读 · 0 评论