算法基础课模板
清纯献给了作业
出于热爱,忠于完美。
展开
-
排序 二分
排序 1. 快排 2. 归并排序 快速排序——分治 void quick_sort(int q[], int l, int r) { if (l >= r) return; int x = q[l], i = l - 1, j = 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]); } quick原创 2021-07-13 12:11:20 · 84 阅读 · 0 评论 -
区间和 区间合并
区间和 /* 输入样例: 3 3 1 2 3 6 7 5 1 3 4 6 7 8 输出样例: 8 0 5 */ #include<iostream> #include<vector> #include<algorithm> using namespace std; const int N = 300010; typedef pair<int, int> PII; int n, m; int a[N], s[N]; vector<int> alls原创 2021-08-08 02:19:02 · 158 阅读 · 0 评论 -
高精度 前缀和 差分
高精度 A + B vector<int> add(vector<int>& A, vector<int>& B) { vector<int> C; if (A.size() < B.size()) return add(B, A); int t = 0;//进位 for (int i = 0; i < A.size(); i++) { t += A[i]; if (i < B.size()) t +=原创 2021-07-17 09:00:30 · 69 阅读 · 0 评论