
01算法
算法总结
张学恒
这个作者很懒,什么都没留下…
展开
-
2816. 判断子序列(DAY 56)
文章目录1:题目2:代码实现1:题目2:代码实现#include<iostream>#include<cstring>using namespace std;const int N=10000010;int n,m;int a[N],b[N];int main(){ cin>> n>> m; for(int i=0;i<n;i++)cin>> a[i]; for(int i=0;i<原创 2022-05-16 13:16:54 · 113 阅读 · 0 评论 -
800. 数组元素的目标和(DAY 56)
文章目录题目代码实现题目代码实现#include<iostream>using namespace std;const int N=1000010;int n,m,x;int a[N],b[N];int main(){ cin>> n>> m>>x; for(int i=0;i<n;i++)cin>> a[i]; for(int i=0;i<m;i++)cin>> b[i];原创 2022-05-16 12:24:21 · 97 阅读 · 0 评论 -
786. 第k个数 自刷 快排加前缀和解法(DAY 50)
文章目录原题题目代码实现思路总结原题题目一看这个题,哦,原来是快排,但是似乎还要加一点东西,快排只能排序,咱们还要输出特定的数字,所以想到前缀和,这个三似乎就是排序后,s[i]-s[i-1]的解法!代码实现 #include<iostream>using namespace std;const int N=1000010;int n,m;int q[N],s[N];void quick_sort(int q[],int l,int r){ if(l>=r)r原创 2022-04-29 13:39:32 · 156 阅读 · 0 评论 -
算法04 高精度——高精度加法(DAY 43)
文章目录题目代码实现总结题目代码实现#include<iostream>#include<vector>using namespace std;const int N=1e6+10;vector<int>add(vector<int> &A,vector<int> &B){ vector<int> C; int t=0; for(int i=0;i<A.si原创 2022-04-22 18:01:40 · 306 阅读 · 0 评论 -
自刷前缀和(DAY 40)
文章目录题目代码思路题目输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。输出格式共 m 行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000,−1000≤数列中元素的值≤1000输入样例:5 32 1 3 6原创 2022-04-19 13:59:34 · 88 阅读 · 0 评论 -
二分(DAY 38)
文章目录原题题目代码实现二分的module原题题目代码实现#include<iostream>using namespace std;const int N=100010;int n,m;int q[N];int main(){ cin >> n>> m; for(int i=0;i<n;i++)cin >> q[i]; while (m -- ){ int x;原创 2022-04-17 11:29:06 · 144 阅读 · 0 评论 -
798. 差分矩阵(DAY 38)
文章目录原题题目代码实现原题题目代码实现#include<iostream>using namespace std;const int N=1010;int n,m,q;int a[N][N],b[N][N];void insert(int x1,int y1,int x2,int y2,int c){ b[x1][y1]+=c; b[x2+1][y1]-=c; b[x1][y2+1]-=c; b[x2+1][y2+1]+=c;}原创 2022-04-17 11:12:44 · 163 阅读 · 0 评论 -
790. 数的三次方根(DAY 38)
文章目录原题题目代码实现原题题目代码实现#include<iostream>using namespace std;int main(){ double x; cin >> x; double l=-10000,r=10000; while(r-l>1e-8) { double mid=(l+r)/2; if(mid*mid*mid>=x)r=mid;原创 2022-04-17 10:52:58 · 323 阅读 · 0 评论 -
理解版本788. 逆序对的数量(DAY 37)
只要会了masterplate 这道题目再加一点改动就行了。主要思想不变。原创 2022-04-16 11:46:42 · 141 阅读 · 0 评论 -
788. 逆序对的数量(DAY 36)
文章目录原题题目代码实现原题题目思想很厉害,熟练掌握可能还要一段时间。代码实现#include <iostream>using namespace std;typedef long long LL;const int N = 1e5 + 10;int a[N], tmp[N];LL merge_sort(int q[], int l, int r){ if (l >= r) return 0; int mid = l + r >>原创 2022-04-15 21:46:25 · 324 阅读 · 0 评论 -
算法09区间合并 803. 区间合并(DAY 35)
文章目录原题题目代码实现总结原题题目代码实现#include<iostream>#include<algorithm>#include<vector>using namespace std;typedef pair<int ,int > PII;const int N=100010;int n;vector<PII>segs;void merge(vector<PII> & segs){原创 2022-04-14 22:39:10 · 94 阅读 · 0 评论 -
算法07 位运算 801. 二进制中1的个数(DAY 35)
位运算,以及Lowbit的原理return x&-x原创 2022-04-14 21:31:10 · 192 阅读 · 0 评论 -
算法08 计算区间和802. 区间和(DAY 35)
文章目录原题题目代码实现总结思考原题题目代码实现#include<iostream>#include<vector>#include<algorithm>using namespace std;typedef pair<int,int >PII;const int N=300010;int n,m;int a[N],s[N];vector<int>alls;vector<PII>add,query;原创 2022-04-14 21:24:57 · 311 阅读 · 0 评论 -
算法06 799. 最长连续不重复子序列双指针算法模板(DAY 34)
文章目录原题题目代码实现类似的用法原题题目代码实现#include<iostream>using namespace std;const int N=100010;int n;int a[N],s[N];int main(){ cin >> n; for(int i=0;i<n;i++)cin >> a[i]; int res=0; for(int i=0,j=0;i<n;i++) {原创 2022-04-13 20:45:58 · 365 阅读 · 0 评论 -
算法05前缀和应用796. 子矩阵的和(DAY 33)
文章目录原题题目代码实现原题题目代码实现#include<iostream>const int N=1010;int n,m,q;int a[N][N],s[N][N];int main(){ scanf("%d%d%d",&n,&m,&q); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&a[i][原创 2022-04-12 21:07:13 · 166 阅读 · 0 评论 -
算法05 795. 前缀和(DAY 33)
文章目录原题题目代码实现ios::sync_with_stdio(false);算法更新会比较慢,因为要学会了才能再自己发文章原题题目代码实现#include<iostream>using namespace std;const int N=100010;int n,m;int a[N],s[N];int main(){ ios:: sync_with_stdio(false);//加快cin效率 副作用是不能用scanf scanf("原创 2022-04-12 19:38:37 · 178 阅读 · 0 评论 -
算法03 789. 数的范围 整数二分(DAY 32)
文章目录原题题目代码实现原题题目代码实现#include<iostream>using namespace std;const int N=100010;int n,m;int q[N];int main(){ cin >> n>>m; for(int i=0;i<n;i++) cin>>q[i]; while (m -- ) { int x; cin &原创 2022-04-11 15:15:07 · 243 阅读 · 0 评论 -
判断排序算法是否是稳定的(DAY 31)
文章目录归并排序是稳定的。一个排序算法是稳定的并不是说它的时间效率是稳定的。而是如果指原序列中 两个数的值是相同的,他们在排完序后,如果位置不发生变化的话,那么这个排序就是稳定的,否则就是不稳定的,但是没什么用。快排是不稳定的。但是可以变成稳定的。每一个数都不同即可,变成双关键字排序即可。...原创 2022-04-10 15:23:07 · 1362 阅读 · 0 评论 -
第45场周赛T2 4394. 最长连续子序列 (DAY 23)
非常好的一道题目,争取下次一次性就AC。原创 2022-04-02 21:27:15 · 210 阅读 · 0 评论 -
第45场周赛T1 4393. 字符串价值(DAY 23)
第一次在比赛中AC,记录一下,继续努力学!原创 2022-04-02 21:23:42 · 235 阅读 · 0 评论 -
算法02:787. 归并排序(DAY 20)
归并排序以及思路分享原创 2022-03-29 22:22:04 · 380 阅读 · 0 评论 -
算法01应用:786.第k个数(DAY 20)
快速排序算法的应用原创 2022-03-29 22:17:43 · 168 阅读 · 0 评论 -
算法01:快速排序(DAY20)
文章目录原题题目代码实现原题题目代码实现#include<iostream>using namespace std;const int N = 1e6+10;int n;int q[N];void quick_sort(int q[],int l,int r){ if(l>=r)return; int x=q[l+r>>1],i=l-1,j=r+1; while(i<j) { do i+原创 2022-03-29 14:03:45 · 800 阅读 · 1 评论