2025-01-25区间合并 区间合并主要内容快速地将一系列区间中有交集(包括端点相交)的区间合并成一个,返回处理后的区间列表。 代码模板123456789101112131415161718void merge(vector<PII>& segs){ vector<PII> res; sort(segs.begin(),segs.end());//先按照左边界大小从小到 2025-01-25 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #interval merging
2025-01-25离散化 离散化主要内容 模板代码1234567891011121314vector<int> alls;//存储所有待离散化的值sort(alls.begin(),alls.end());//将所有值排序alls.erase(unique(alls.begin(),alls.end()),alls.end());//去重//二分求出x对应的离散化下标int find(int x){ 2025-01-25 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #discretization
2025-01-25位运算 位运算主要内容low_bit返回的是一个整数的二进制形式最右边的“1”,比如对于(101011000)2 返回的是(1000)2 123int low_bit(int n){ return n&-n;} 例题low_bit二进制表示中1的个数 12345678910111213141516171819202122232425#include<bits/st 2025-01-25 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #binary
2025-01-24双指针 双指针算法主要内容双指针有很多种,第一类是两个指针在不同的序列上,比如归并排序的区间合并问题,还有一类是两个指针指向同一序列的不同位置来解决一些问题。主要遇到的是第二类。 针对第二类,一般可套用下面的模板。双指针实质上是根据问题的某种特性,比如单调性,来对朴素算法进行优化。 经典例题A+B123456789101112131415161718192021222324252627282930313 2025-01-24 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #double-pointer
2025-01-23差分 差分情景将区间[l,r]之间每个元素都加上一个数c,求修改后数组的值。 主要内容一维差分 二维差分 模板题一维差分12345678910111213141516171819202122232425262728293031323334353637#include<bits/stdc++.h>using namespace std;int n,q;const int N=1e5+5;int 2025-01-23 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #differential
2025-01-23前缀和 前缀和情景求区间[l,r]之间所有元素的和。 主要内容一维前缀和 二维前缀和 模板题https://blog.csdn.net/qq_44426403/article/details/134255195 一维前缀和123456789101112131415161718192021222324252627#include<bits/stdc++.h>using namespace std 2025-01-23 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #prefix sum
csp36-5 梦魔(30分) csp36-5 梦魔题干https://sim.csp.thusaac.com/contest/36/problem/4 30分作答12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717 2025-01-23 寒假练题计划 > scp认证真题 #cpp #algorithm #csp #binary search
2025-01-22高精度整数运算 高精度整数运算目的为了解决cpp语言整型变量存在范围,太大的整数会导致溢出。 存储方式 采用vector存储每一位数,一般从低位开始存,方便进位操作。 加法、减法、乘法都是从最低位算起的,但是除法得从最高位算起,保存的C数组也是反的,所以返回之前要转置。 高精度加法两个大整数相加。 1234567891011121314151617181920212223242526272829303132 2025-01-22 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #big integer
2025-01-20浮点二分 浮点二分浮点二分比整数二分简单得多,因为无需判断边界条件,只要设置精度即可。 设置精度标准:一般题目要求保留x位的话,精度加上2没有大问题。 模板1234567891011const double eps = 1e-9;double binary_search(double left, double right) { int l=left, r=right; while 2025-01-20 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #binary search
2025-01-19二分 二分查找模板12345678910111213141516171819202122232425bool check(int x){ //判断函数 return true}//[l,mid],[mid+1,r]int bsearch_1(int l,int r){ while (l<r) { int mid=l+r& 2025-01-19 寒假练题计划 > 基础算法 #cpp #algorithm #ACwing #binary search