12 2021 档案

摘要:不用说了,直接上怎么 die( 千万不要和 Treap 一样写左旋 zig 和右旋 zag,莫名死亡。Splay 只支持一个 rotate 上旋一个节点即可。 splay() 之前记得弄一个栈存储 u 到根的 splay 路径,倒序把 flip 标记全部推下来。 access() 中 u 在往上爬的 阅读全文
posted @ 2021-12-23 20:59 CharlieVinnie 阅读(26) 评论(0) 推荐(1) 编辑
摘要:莫队算法,就是在 O(nn) 的时间内搞定 离线 区间询问 的一类问题的算法。 普通莫队:无修改,可删除。O(nn)。 带修莫队:有修改,可删除。O(n2/3),通过加一维时间来实现。 回滚莫队:无修改,不可删除。O(nn),每次 阅读全文
posted @ 2021-12-21 22:38 CharlieVinnie 阅读(32) 评论(0) 推荐(0) 编辑
摘要:面对“n 个数中选 k 个数”之类的问题,脑子里第一个想到指数型生成函数。 重要技巧:进行一个游戏,进行的期望次数=Σ(进行 i 次还没有停止的概率)。 证明:阿贝尔变换即可。 于是就可以设 P(i) 为进行 i 次的概率,令 $F(z)=\sum\limits_{i \geq 0} 阅读全文
posted @ 2021-12-19 21:53 CharlieVinnie 阅读(67) 评论(0) 推荐(0) 编辑
摘要:杜教筛:在 O(n2/3) 的时间内求出积性函数 f(x) 的前缀和。 注意事项: 1. 线性预处理 n2/3 内的所有 f 的值再开始筛。 2. 一定要用一个数组(而不是 map)来记忆化,对于所有 d 记忆 n/d 处的 f 前缀和。 3. 如果有多次询问 阅读全文
posted @ 2021-12-15 23:12 CharlieVinnie 阅读(28) 评论(0) 推荐(0) 编辑
摘要:思路: 首先想到每次询问两个点后就从这两个点开始往上爬,沿路更新 dp 值即可。 #include <bits/stdc++.h> #define For(i,a,b) for(int i=a;i<=b;i++) #define Rev(i,a,b) for(int i=a;i>=b;i--) #d 阅读全文
posted @ 2021-12-11 13:24 CharlieVinnie 阅读(53) 评论(0) 推荐(0) 编辑
摘要:FFT Fast Foulier Transformation 以 O(nlogn) 的速度计算 k=1,2,,n,c[k]=i=0ka[i]b[ki] **command_block 大神's blog** 记住,要 阅读全文
posted @ 2021-12-07 20:34 CharlieVinnie 阅读(39) 评论(0) 推荐(0) 编辑
摘要:第一题: 1. 有限域 第二题: 1. 杜教筛(网上找了点文章基本弄懂了) 2. 结论是怎么推出来的 第三题: 1. 慢慢看题解能看明白 第四题: 1. 看懂怎么推的,但斯特林数怎么线性求 第五题: 1. 那个式子怎么推出来 2. 式子推出来后怎么算 第六题: 1. 式子没看懂 2. 有了这个式子怎 阅读全文
posted @ 2021-12-05 17:08 CharlieVinnie 阅读(48) 评论(0) 推荐(0) 编辑
摘要:【HDU 5451/计蒜客A1988】 Best Solver 对于模 p 的二维递推数列 an=uan1+van2 来说,有“扩展费马小定理”:(x,y) 有循环节 p21。 为什么呢?所有 [x,y](x0,y0) 与所有 $[x 阅读全文
posted @ 2021-12-04 20:42 CharlieVinnie 阅读(78) 评论(0) 推荐(0) 编辑
摘要:#6429 简单无向图: 图的区间连边,使用线段树矩形 +1 结合找 0,用 Boruvka 算法求连通块数量。 #6433 金色飞贼: 将平面上的三角形投影到一条线段上后再利用 set 进行计算。 #6435 inversion: 树上 map 启发式合并。 #6437 turing machin 阅读全文
posted @ 2021-12-01 20:20 CharlieVinnie 阅读(37) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
🚀
回顶
收起