上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 28 下一页
摘要: sort的比较函数可以视为重写小于号,也可以视为按照cmp为true的顺序排序 lower_bound可以视为重写小于号,且cmp的第一个参数为容器中的元素,第二个参数为二分查找的元素。 查找的是第一个非小于的为位置,即大于等于的为位置。 upper_bound可以视为重写小于等于号?未查证。 阅读全文
posted @ 2022-07-12 23:36 80k 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 没有重边和自环,连通块为一个环等价于连通块中每个节点的度为2 阅读全文
posted @ 2022-07-12 10:18 80k 阅读(14) 评论(0) 推荐(0) 编辑
摘要: C++中,=、+=、^=等赋值运算符,返回左操作数的引用,故可以连续操作 比如,a=b=c 比如(a+=b)%=MOD 阅读全文
posted @ 2022-07-12 09:50 80k 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 状态压缩dp的时间复杂度一般时O(n*2^m) 可以将2^m优化为2^(m/2) 具体看例题: 牛客网小白月赛53 F. Freezing https://ac.nowcoder.com/acm/contest/11230/F dp[hi][li]数组的状态定义为,高8位为hi,低8位与li没有交集 阅读全文
posted @ 2022-07-12 09:48 80k 阅读(19) 评论(0) 推荐(0) 编辑
摘要: LL GCD(LL a, LL b) { return b == 0 ? a : GCD(b, a % b); } View Code 此写法可以防止%0出现浮点数错误 阅读全文
posted @ 2022-07-11 20:48 80k 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 操作: pushup:由子节点算父节点信息 build:建立线段树,将一段区间初始化为线段树 modify:修改,修改某个点,或修改某个区间(需要使用pushdown) query:查询,查询某一段区间的信息 pushdown:父节点修改传递到子节点修改(懒标记) 原理: 满二叉树: 节点编号: 一 阅读全文
posted @ 2022-07-11 16:59 80k 阅读(35) 评论(0) 推荐(0) 编辑
摘要: pair_hash struct PairHash { size_t operator()(const pair<int,int>& p) const { return hash<int>{}(p.first)^ hash<int>{}(p.second); } }; View Code vecto 阅读全文
posted @ 2022-07-09 21:35 80k 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 解决的问题: 1、快速求前缀和(logn)(区间求和) 2、修改某一个数(logn)(单点修改) 对比:数组:求前缀和On,修改O1;前缀和数组:求前缀和O1,修改On C[x]表示,以x结尾,长度为lowbit(x)的区间中的计数 查询: 修改: 模板: int a[200010]; LL tr[ 阅读全文
posted @ 2022-07-09 20:01 80k 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 连通分量可以用并查集处理。 连通分量是环的条件可以是:边数等于点数,每个点的度都为2。 例题:AcWing 4493. 环形连通分量 #include<bits/stdc++.h> using namespace std; typedef long long LL; int p[200010]; i 阅读全文
posted @ 2022-07-09 19:43 80k 阅读(43) 评论(0) 推荐(0) 编辑
摘要: for (int j = (i - 1) & i; j; j = (j - 1) & i) cout << j << endl; View Code 其中 i 为原始的数字,j为子集(二进制一) 阅读全文
posted @ 2022-07-08 17:13 80k 阅读(33) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 28 下一页