摘要:
约数定理看这里 质数筛看这里 阅读全文
摘要:
看这里 总结一个写法: `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的下一个数一定在右部分。我们可以根据题目选择多种方法二分数组,大类上分为两种,寻找大于等 阅读全文
摘要:
对于A选项,有反例y=x^3,单调递增,但在x=0处导数为零。 阅读全文
摘要:
求最大值初始化: 只有两种情况 1.初始化入口为0,表示为合法方案。 2.初始化为正无穷或负无穷,表示方案不合法。当题目求最大值是,为负无穷,那么该方案就一定不会更新最大值。 初始化什么? 1.初始化初始状态,即f[0][0],因为下一个状态要从初始状态转移过来。 求方案数初始化: 1.合法方案初始 阅读全文