摘要: STL知识总结 set 集合 插入和搜索的时间复杂度是O(logn),效率较高 会自动排序(升序) 元素互异 只能通过迭代器iterator访问 我们直接上代码 set<int>::iterator it;//迭代器长这样 insert(); //插入一个元素,会自动检查重 begin(); //返 阅读全文
posted @ 2021-10-21 22:20 多巴胺不耐受仿生人 阅读(43) 评论(0) 推荐(0)
摘要: vector highlowdiv(vector v, long long b) { vector ans; long long t = v[0]; for (int i = 1; i ⇐ v.size(); i++) { ans.push_back(t / b); t %= b; t *= 10; 阅读全文
posted @ 2021-10-21 22:16 多巴胺不耐受仿生人 阅读(39) 评论(0) 推荐(0)
摘要: 二分 条件:往往要先给要查询的那组数据进行排序, 单调性 例子 比如砍伐树的高度与木材总长有关系。砍伐越矮,木材总长越长。 比如木材的长度与能切割成的小段关系,木材长度越短,小段越多,木材长过一定长度能切出的等长小段就可能减少,但不可能增加。(P2240) 当按照贪心的方式移走石块时:移动的石子数与 阅读全文
posted @ 2021-10-21 22:15 多巴胺不耐受仿生人 阅读(94) 评论(0) 推荐(0)
摘要: LCA-最近公共祖先 性质: d(u,v)=d(u)+d(v)-2d(LCA(u,v))(d(i)表示到编号为i节点的深度) 可以通过以上式子求两点之间的距离O(n) \[ LCA(S\cup S')=LCA(LCA(S),LCA(S')) \] LCA(u,v)必在u,v的最短路上 朴素法 int 阅读全文
posted @ 2021-10-21 22:14 多巴胺不耐受仿生人 阅读(72) 评论(0) 推荐(0)
摘要: 并查集 //按秩合并版 void merge(long long x,long long y) { x=find(x); y=find(y); if(h[x]==h[y]) { s[x]=y; h[y]++; }else{ if(h[x]>h[y]) s[y]=x; else s[x]=y; } } 阅读全文
posted @ 2021-10-21 22:13 多巴胺不耐受仿生人 阅读(36) 评论(0) 推荐(0)
摘要: 数论 牛顿迭代法 \[ x[n]=x[n-1]-f(x[n-1])/f{'}(x[n-1]) \] 将算出的x[n]不断带入x[n-1]的位置重新计算,使x的值处于答案要求的精确度范围即可 算数基本定理 \[ N=p^{a1}_{1}p^{a2}_{2}p^{a3}_{3}...p^{an}_{n} 阅读全文
posted @ 2021-10-21 22:08 多巴胺不耐受仿生人 阅读(61) 评论(0) 推荐(0)
摘要: 树状数组 -->前置的一个知识lowbit 所谓lowbit就是一个数最低位的1所表示的数字大小 00001010 = 10 此时的lowbit是2不是第二位,而是2^1 lowbit (i)=2^i末尾0数量 lowbit可以用来判断在树状数组中一个数组元素包含原数组的个数 如7的lowbit是1 阅读全文
posted @ 2021-10-21 22:07 多巴胺不耐受仿生人 阅读(45) 评论(0) 推荐(0)
摘要: 树的重心 所谓重心是在树中删除后使得剩下的连通块节点数最大的最小的点 重心的性质: 树上所有点到一点的距离(可带权)之和是到所有点距离之和中最短的 连接两颗树其新重心在于两树的重心的路径上 树增加或删除一个叶子,重心最多移动一个节点 树的重心若不唯一最多为2,且两个重心相邻 以重心为根的子树的大小不 阅读全文
posted @ 2021-10-21 21:57 多巴胺不耐受仿生人 阅读(69) 评论(0) 推荐(0)