- 博客(6)
- 收藏
- 关注
原创 Codeforces Round #817 (Div. 4) D. Line
我们发现每个人都是独立的,也就是我想看到别人只取决于我的位置,而不取决于别人的方向。因此我们考虑每个人改变方向的会增加的贡献。我们可以计算出每一个人转头之后贡献值的变化,我们可以将这些数存在vector中,将这些变化。朝左->朝右:n-i-(i-1)=n+1-2i;朝右->朝左:i-1-(n-i)=2i-n-1;一个人对该值的贡献与他的朝向和位置有关。假设共有n个人,对第i个人来说,
2024-05-19 16:14:45
122
1
原创 快速幂(KMI)
顾名思义,快速幂就是很快速的幂运算,与朴素的 O(N) 相比效率有了极大的提高。当要计算a的N次方(mod p)的时候,你的第一反应是开long long再循环一点一点求。这就是幂运算的 O(N) 算法,于是快速幂相关的各种题应运而生。
2024-05-15 23:41:05
447
原创 归并排序--分治
指的是在排序过程中,对于具有相同排序关键字的元素,在排序后它们的相对位置保持不变。①确定分界点:mid=l+r>>1。②递归排序 left、right。
2024-05-09 17:32:29
180
1
原创 树状数组模版
树状数组是一个很奇特的树,它的节点会比线段树少一些,也能表示一个数组。树状数组是一种类似于前缀和的数据结构,但是前缀和的修改操作是O(n)的,查询是O(1)的。所以就有了树状数组这个数据结构,它的两种操作被中和了,都是O(logn)的。线段树也能实现树状数组的功能,但是:相比线段树,树状数组更好写,而且代码很短。
2024-04-24 20:00:58
707
原创 线段树模版
线段树是算法竞赛中常用的用来维护区间信息的数据结构。线段树可以在很小的时间复杂度内实现单点修改区间修改区间查询(即区间求和,求区间 max,求区间min,区间gcd)等操作。但是,线段树所维护的信息,需要满足区间加法。区间加法:如果一个区间 [l,r](线段树中一个点表示一个区间)满足区间加法的意思是一个区间 [l,r] 的线段树维护的信息(即区间最大值,区间最小值,区间和,区间gcd 等),可以由两个区间 [l,mid] 和 [mid+1,r] 合并而来。
2024-04-22 19:04:40
455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人