树状数组
romiqi_new
这个作者很懒,什么都没留下…
展开
-
191026考试题解
T1:求一个网格图从原点出发走n步,每步等概率往上下左右走,最终到达的点和原点之间的欧氏距离的期望 打个表可以发现是n,完了 具体证明可以推式子或者三角函数 #include<bits/stdc++.h> #define mod 998244353 #define pii pair<int,int> #define pb push_back #define mp make_...原创 2019-10-26 17:02:14 · 247 阅读 · 0 评论 -
[BZOJ3529][莫比乌斯反演][树状数组]SDOI2014:数表
BZOJ3529 要求的是约数和 如果没有a的限制,直接反演就完了 有a的限制的话,把询问按a排序,用树状数组维护约数和乘上μ\muμ的前缀和即可 Code: #include<bits/stdc++.h> #define mod 2147483648 #define ll long long using namespace std; inline int read(){ int r...原创 2019-08-09 19:21:31 · 163 阅读 · 0 评论 -
[BZOJ5416][树状数组][组合数学]NOI2018:冒泡排序
BZOJ5416 分析: 我们先考虑为什么有些排列是好的,有些排列不好 可以发现交换次数的下界这个式子即表示每个位置的数到它原本该在的位置,且有个1/21/21/2表示每次交换必须要让被交换的两个数都离自己的目标位置更近一步 所以我们如果把每个数到他的目的地看做一个箭头,则任意两个同向箭头不能有完全包含的关系 因为如果出现了包含的箭头,那大箭头一定会把小箭头往反向移动一步 所以我们在一个位置填的数...原创 2019-08-09 23:18:12 · 116 阅读 · 0 评论 -
[BZOJ4888][树状数组]TJOI2017:异或和
BZOJ4888 可以枚举二进制每一位,看看哪些对它有贡献 先弄成前缀和,然后增量构造 如果当前前缀和的当前这一位为1,那么要满足它减去之前的一个前缀和之后这一位仍然为1,就是要求减去的那个前缀和的小于枚举的这一位的部分小于当前前缀和的这一部分,这样减掉才不会退位 如果当前这一位为0,那就是要大于才能退位退到这一位上来 分别用树状数组维护即可 Code: #include<bits/stdc...原创 2019-09-16 23:57:36 · 212 阅读 · 0 评论 -
[LOJ3021][树状数组][扫描线]CQOI2017:老C的任务
LOJ3021 这扫描线敢不敢再水一点 好像没法更水了 Code: #include<bits/stdc++.h> #define ll long long using namespace std; inline ll read(){ ll res=0,f=1;char ch=getchar(); while(!isdigit(ch)) {if(ch=='-') f=-f;ch=g...原创 2019-09-25 21:54:57 · 128 阅读 · 0 评论 -
[LOJ2056][CDQ][树状数组]TJOI / HEOI2016:序列
LOJ2056 设一个位置的数的最大可能值为mxmxmx,最小为mnmnmn,原本值为valvalval DP时显然需要满足以下条件: j<ij<ij<i valj<mnival_j<mn_ivalj<mni mxj<valimx_j<val_imxj<vali 显然三维偏序,CDQ+树状数组 Code: #include<bit...原创 2019-09-27 22:00:30 · 116 阅读 · 0 评论 -
[CF1137F][LCT][树状数组]Matches Are Not a Child's Play
CF1137F LCT神题。。。 首先三操作显然就是两个二操作 然后我们考虑一操作会造成什么影响 我们将权值最大的那个点看作根,一个点进行一操作后,他到根节点这条路径就会最后被删除,其他的点删除顺序不变,这很显然 考虑这段链,一定是从原来的最大值那一头删到当前最大值这一头,那我们就把新的最大值作为根,这就很像LCT了 所以我们把会从下到上按顺序删除的链看成实链,那么不同链之间的影响只与链上最大值有...原创 2019-10-06 17:07:58 · 226 阅读 · 0 评论