程序设计算法——基础算法
基础算法
Vic.GoodLuck
窗外有风景,笔下有前途!
展开
-
二分
【代码】二分。原创 2023-03-27 11:12:17 · 31 阅读 · 0 评论 -
递归
【代码】递归。原创 2023-03-26 20:28:13 · 32 阅读 · 0 评论 -
贪心
【代码】贪心。原创 2023-02-26 20:43:29 · 25 阅读 · 0 评论 -
Manacher算法(最长回文串长度)
【代码】Manacher算法(最长回文串长度)原创 2023-02-15 14:03:27 · 27 阅读 · 0 评论 -
RMQ(ST表,查询区间最大值)
题意:多次询问[l,r]之间的最大值。原创 2023-02-15 12:57:39 · 48 阅读 · 0 评论 -
排序
快速排序:每次选一个数作为标兵,将小于它的放在左边,大于它的放在右边 (先排序后递归) void q_sort(int l,int r) { if(l>=r) return; int i=l-1,j=r+1,x=q[l+r>>1]; while(i<j) { do i++;while(q[i]<x); do j--;while(q[j]>x); if(i<j) swap(q[i],q[j]); } q_sort(l,j),q_sort原创 2022-02-09 16:51:34 · 378 阅读 · 0 评论 -
前缀和 差分
1.一维前缀和 构造前缀和 s[x]=s[x-1]+a[x] 求解原数组 a[x]=s[x]-s[x-1] 2.二维前缀和(画图理解) 构造前缀和 s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j] 求解原数组 s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1] 3.一维差分 构造差分 s[i]=a[i]-a[i-1] 修改区间(也可以用这个函数进行构造,insert(i,i,a[i])) .原创 2022-02-09 18:05:49 · 81 阅读 · 0 评论 -
高精度模板
1.高精加 #include<bits/stdc++.h> using namespace std; vector<int> add(vector<int> &A,vector<int> &B) {//大加小 if(A.size()<B.size()) return add(B,A); vector<int> ans; int t=0; for(int i=0;i<A.size();i++) { t+原创 2022-02-09 17:04:04 · 328 阅读 · 0 评论