
算法模板
顾冷__
克服虛荣心、炫耀欲,你要对付的是你时刻想要出风头的小聪明
展开
-
算法模板目录(ing)
文章目录1.排序专区点击这里->归并排序点击这里->快速排序点击这里->快速选择1.排序专区点击这里->归并排序点击这里->快速排序点击这里->快速选择原创 2022-01-06 22:26:03 · 561 阅读 · 17 评论 -
AcWing 844. 走迷宫
【代码】AcWing 844. 走迷宫。原创 2022-10-10 17:05:00 · 318 阅读 · 1 评论 -
蓝桥杯必看 【手撕模板】三分钟搞懂 <并查集>
并查集可以使我们用将近O(1)的时间 去查询两个元素是否属于一个集合原创 2022-02-22 11:51:15 · 754 阅读 · 10 评论 -
蓝桥杯必看 【手撕模板】三分钟搞懂 <Trie树(字典树)>
#include<iostream>const int N = 1e6 + 10;using namespace std;int son[N][26],book[N],cur;(1)int n ;char str[N],ch;void insert(char str[]){ int p = 0;(2) for(int i = 0 ; str[i] ;i ++)//遍历整个数组 { int u = str[i] - 'a';(3) .原创 2022-02-20 23:48:41 · 8329 阅读 · 4 评论 -
蓝桥杯必看 【手撕模板】三分钟搞懂 <KMP算法>
前言在学习kmp算法之前 我们需要知道 kmp 算法是用来干什么用的KMP算法是一种字符串匹配算法,可以在 O(n+m)的时间复杂度内实现两个字符串的匹配。所谓字符串匹配,是这样一种问题:“字符串 P 是否为字符串 S 的子串?如果是,它出现在 S 的哪些位置?” 其中 S 称为主串;P称为模式串。#include<iostream>const int N = 1000010;using namespace std;int m,n;char s[N],p[N];i原创 2022-02-19 22:38:18 · 962 阅读 · 8 评论 -
蓝桥杯必看 【手撕模板】三分钟带你上手算法模板(例题 + 套路总结) --> 差分
前言(必看)本系列 暂无详细的 公式推导以及证明,适合有一定知识基础的同学目的是 通过分析例题、了解、总结套路来达到举一反三 触类旁通的效果文章目录前言(必看)1、差分使用场景以及核心思想2.1 一维差分主要思路例题例题源码模板+套路2.2 二维差分思路例题例题源码模板+套路1、差分使用场景以及核心思想给出 n 个数,再给出 m 个询问,每个询问给出 l,r,x,要求你在 l 到 r 上每一个值都加上 x,而只给你 O(n) 的时间范围,怎么办?如果暴力,时间复杂度就是原创 2022-01-14 20:02:04 · 6728 阅读 · 17 评论 -
C算法模板->大数除法
#include<iostream>#include<vector>#include<algorithm>using namespace std;vector<int> divi (vector<int> &A,int b,int &r){ vector<int> C; for(int i=A.size() -1 ; i>=0 ;i--) //除法是从高位开始算的原创 2022-01-09 20:15:14 · 497 阅读 · 14 评论 -
C算法模板->大数乘法
文章目录源码实现细节源码#include<iostream>#include<vector>const int N = 1e6+10;int q[N];int n;using namespace std;vector<int> mul(vector <int> &A,int b){ vector<int> C; int t=0; for(int i = 0; i < A.size() ||原创 2022-01-09 12:52:42 · 493 阅读 · 14 评论 -
C算法模板->二维前缀和
文章目录前言例题与模板前言对于二维前缀和主要有两个公式理解这两个公式之后就可以套公式即可//1. 求s[i][j]的公式s[i][j] = s[i - 1][j] + s[i][j - 1] -s[i - 1][j - 1] + a[i][j];//2. 求一点 A(x1,y1与 B(x2,y2) 这个字矩阵的和Sab = s[x2][y2] -s[x1 - 1] [y2] - s[x2][y1 - 1] +s[x1 - 1][y1 - 1]例题与模板#include<ios原创 2022-01-08 22:00:01 · 556 阅读 · 8 评论 -
C算法模板->大数减法
#include <iostream>#include <cstring>#include <algorithm>#include <vector>#include <map>using namespace std;bool cmp(vector<int>& A, vector<int>& B) //判断是否A >= B{ if (A.size() != B.size())原创 2022-01-08 18:55:01 · 275 阅读 · 5 评论 -
C算法模板->线性前缀和
#include<iostream>#include<vector>using namespace std;const int N = 1e5+10;int S[N],a[N];int main(){ int n,m; int r,l; cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; //(1) for(int i=1.原创 2022-01-07 22:46:06 · 255 阅读 · 10 评论 -
C算法模板->大数加法
#include <iostream>#include <cstring>#include <algorithm>#include <vector>#include <map>using namespace std;const int N = 1e5+10;int n;int q[N];vector<int>add(vector<int> &A,vector<int> &B)原创 2022-01-07 12:51:53 · 324 阅读 · 5 评论 -
C 算法模板->快速排序
快排#include<iostream>using namespace std;const int N = 1e6+100;int q[N];void quick_sort(int q[],int l,int r){ if(l >= r) return ; int val = q[(l+r)>>1]; int i = l-1,j = r+1; while(i < j) {原创 2022-01-06 22:24:10 · 175 阅读 · 6 评论 -
C算法模板->快速选择算法
#include <iostream>using namespace std;const int N = 1000010;int q[N];int quick_sort( int l, int r, int k){ if (l >= r) return q[l]; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i ++ ;原创 2022-01-01 13:12:31 · 560 阅读 · 8 评论 -
C 算法模板-->归并排序
并归排序模板 以及一些易错点原创 2021-12-31 23:04:37 · 356 阅读 · 14 评论 -
算法小模板|双指针问题及其拓展+例题
c+双指针-左右指针(反转字符串中的元音字母) - 反转字符串中的元音字母 - 力扣(LeetCode) (leetcode-cn.com)//法一 char * reverseVowels(char * s) { int i = 0,j = strlen(s)-1; char match[]={"AEIOUaeiou"}; while(i < j) { while(i < j && strchr(match.原创 2021-12-11 21:27:16 · 569 阅读 · 16 评论 -
算法小模板|滑动窗口(模拟)
滑动窗口(模拟)double findMaxAverage(int* nums, int numsSize, int k){ int sum = 0; for(int i=0;i<k;i++) { sum+=nums[i]; } int Max = sum; for(int i =k;i<numsSize;i++) { sum = sum - nums[i - k] + nums[i];原创 2021-12-07 15:26:06 · 735 阅读 · 4 评论