随笔分类 - 学习算法每一天
acwing提高棵
摘要:看这里 总结一个写法: `int st = 1e8, ed = -1e8;//确保第一个区间一定小于初始值 sort(segs.begin(), segs.end()); st = segs[0].first;//因为已经排过序了,所以第一个区间的左端点是最小的 bool sign = true;/
阅读全文
摘要:` #include<iostream> #include<cstring> #include<vector> #include<algorithm> using namespace std; typedef pair<int,int> PII; //数对 type-类型 define-定义 pai
阅读全文
摘要:作用 在求一串数的Sn - Sm 时,降低时间复杂度O(n)为O(1) 代码 #include<iostream> using namespace std; const int N = 100010; int n, m; int a[N], s[N]; int main() { scanf("%d%
阅读全文
摘要:1.大整数的存储 使用数组存储,把数的个位存在数组头部0,这样做在数组进位时,可以十分方便的在数组末尾添加一项,若把整数个位存在数组末尾,当进位时需要调整整个数组。(以上数组不涉及链表数组) 2.运算 模拟加法,逢十进一 模拟减法,不够借一,保证A>=B, 保证最高位不会借位 模拟乘法,将乘数看成一
阅读全文
摘要:#include<iostream> using namespace std; const int N = 100010; int tmp[N]; void merge_sort(int q[], int l, int r) { if (l >= r)return; int mid = l + r
阅读全文
摘要:void swap(int a, int b) { int c = a; a = b; b = c; } void quick_sort(int q[], int l, int r)//L从0开始 { if (l >= r)return; int i = l - 1, j = r + 1, x =
阅读全文
摘要:
1.思想 对于一个已排序数组,找到一个点,使得数组被分为两部分,即此点左部和右部(点在左部或右部中的一个),比如数组中小于等于某数x的部分与大于的部分; 对于整数二分而言两个范围之间是没有空隙的,即左部分的边界x的下一个数一定在右部分。我们可以根据题目选择多种方法二分数组,大类上分为两种,寻找大于等
阅读全文
