快速幂


快速幂递归快速幂//递归快速幂 ll qpow(int a,int n) {if(n == 0) {return 1;}else if (n%2 == 1) {return qpow(a,n-1) * a;}else {long long temp = qpow(a,n/2);return temp

同余式&扩展欧几里得算法


取余运算的性质同余式性质逆元:a⋅b≡1(mod p)称a是b的乘法逆元,逆元: a·b ≡ 1 (mod~p) \\称a是b的乘法逆元,逆元:a⋅b≡1(mod p)称a是b的乘法逆元,那如何计算逆元呢?使用快速幂算法就可以了int qpow(int a,int n,int p) { int

二叉树寻找节点在第几层获取左右子树有几个节点


#include <iostream>#include <vector>#include <stdio.h>using namespace std;class TreeNode {public: int val; TreeNode *left;

滑动窗口模板


模板/* 滑动窗口算法框架 */void slidingWindow(string s, string t) { unordered_map<char, int> window; int left = 0, right = 0; while (right < s.

二分法(算法)


https://blog.csdn.net/qq_36102055/article/details/104375766https://www.acwing.com/solution/content/107848/https://www.acwing.com/problem/content/791/

快慢指针例题


https://www.acwing.com/solution/content/218914/https://www.acwing.com/solution/content/218913/

斐波那契-带备忘录的递归


#include <iostream>#include <cstring>int dp(int memo[],int n){if(n == 0 || n == 1) return n; if(memo[n] != 0) return memo[n]; memo[n

二叉树cpp实现


#ifndef BINARYTREE_H#define BINARYTREE_H#pragma once#include <iostream>#include <cassert>#include <vector>#include <stack>#inc

前缀和与差分


https://www.acwing.com/problem/content/797/#include <iostream>using namespace std;const int N = 100010;int n, m;int a[N], s[N];int main(void){

乱七八糟的题


分解质因数1、题目:给定n个正整数ai,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。输入格式第一行包含整数n。接下来n行,每行包含一个正整数ai。输出格式对于每个正整数ai,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数,每个底数和指数占一行。每个正整数的