摘要: 约数定理看这里 质数筛看这里 阅读全文
posted @ 2024-03-09 15:54 这就叫做C++ 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 看这里 总结一个写法: `int st = 1e8, ed = -1e8;//确保第一个区间一定小于初始值 sort(segs.begin(), segs.end()); st = segs[0].first;//因为已经排过序了,所以第一个区间的左端点是最小的 bool sign = true;/ 阅读全文
posted @ 2024-03-05 21:55 这就叫做C++ 阅读(3) 评论(0) 推荐(0) 编辑
摘要: ` #include<iostream> #include<cstring> #include<vector> #include<algorithm> using namespace std; typedef pair<int,int> PII; //数对 type-类型 define-定义 pai 阅读全文
posted @ 2024-03-05 21:05 这就叫做C++ 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 作用 在求一串数的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% 阅读全文
posted @ 2024-03-01 21:46 这就叫做C++ 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 1.大整数的存储 使用数组存储,把数的个位存在数组头部0,这样做在数组进位时,可以十分方便的在数组末尾添加一项,若把整数个位存在数组末尾,当进位时需要调整整个数组。(以上数组不涉及链表数组) 2.运算 模拟加法,逢十进一 模拟减法,不够借一,保证A>=B, 保证最高位不会借位 模拟乘法,将乘数看成一 阅读全文
posted @ 2024-03-01 21:29 这就叫做C++ 阅读(2) 评论(0) 推荐(0) 编辑
摘要: #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 阅读全文
posted @ 2024-02-29 22:06 这就叫做C++ 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 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 = 阅读全文
posted @ 2024-02-29 21:55 这就叫做C++ 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 整数二分算法(自用) 1.思想 对于一个已排序数组,找到一个点,使得数组被分为两部分,即此点左部和右部(点在左部或右部中的一个),比如数组中小于等于某数x的部分与大于的部分; 对于整数二分而言两个范围之间是没有空隙的,即左部分的边界x的下一个数一定在右部分。我们可以根据题目选择多种方法二分数组,大类上分为两种,寻找大于等 阅读全文
posted @ 2024-02-29 21:47 这就叫做C++ 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 对于A选项,有反例y=x^3,单调递增,但在x=0处导数为零。 阅读全文
posted @ 2023-10-14 14:13 这就叫做C++ 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 求最大值初始化: 只有两种情况 1.初始化入口为0,表示为合法方案。 2.初始化为正无穷或负无穷,表示方案不合法。当题目求最大值是,为负无穷,那么该方案就一定不会更新最大值。 初始化什么? 1.初始化初始状态,即f[0][0],因为下一个状态要从初始状态转移过来。 求方案数初始化: 1.合法方案初始 阅读全文
posted @ 2022-10-17 21:16 这就叫做C++ 阅读(54) 评论(0) 推荐(0) 编辑