Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

02 2023 档案

摘要:以下我们并没有考虑计数时重复计算的问题,讨论一些细节可以做到这一点。并且假设 n,m 同阶。 首先我们考虑 k 比较小的情况。 考虑最简单的 k=3。 一个非常直观的做法应该是枚举一个点 u 和它的出边 (u,v),然后再枚举 v 的一条出边。这个大概是 $O(m(n+m)) 阅读全文
posted @ 2023-02-26 21:15 PYD1 阅读(125) 评论(0) 推荐(0) 编辑
摘要:bzoj2120 每块维护 prei,代表该颜色上次出现的位置,将其排序。维护 ans,代表块答案。O(nszszlogsz)=O(nlogsz) 对于询问 [l,r],先把所有块的答案加起来,然后减去 $pre_i \geq l 阅读全文
posted @ 2023-02-21 16:55 PYD1 阅读(25) 评论(0) 推荐(0) 编辑
摘要:把操作离线下来。 把每个修改操作差分拆成两个操作,然后类似于扫描线,在位置序列上扫描,维护该位置上的历史数组,一共有 O(q) 次修改,O(q) 次查询。 每次操作形如给 [pos,n]+=v,每次查询形如查询 [1,pos]v 的个数。 这个是典中典分块,显 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(15) 评论(0) 推荐(0) 编辑
摘要:先考虑如果修改操作是对整个序列进行的应该怎么做。 我们发现这个时候相当于对一个可重集合做这些操作,不妨认为有一个数组 ar[i] 表示 i 出现的次数。 这时询问是简单的,考虑怎么修改。发现倘若当前的值域是 [0,mx],执行一次参数为 x 的操作后,我们可以分类讨论: 若 $x > 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(15) 评论(0) 推荐(0) 编辑
摘要:首先,我们发现这个有贡献的数对可以有 O(n2)。(显然你构造一个升序就行了) 然后,这就说明我们肯定不能把这些贡献一个个算出来丢到平面上。考虑到贡献只有 p1,p2 两种,考虑把相同的丢到一起去算。 对于数对 (l,r),我们去考虑区间 [l+1,r1] 的最大值所在位置为 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(21) 评论(0) 推荐(0) 编辑
摘要:一眼 dfs 序,转变成每个询问 (u,v,k) 询问 l[u]ar[u],l[v]br[v](a,b,v) 中值第 k 小的。 这个一眼是个数点对吧,但显然不能直接数。 我们可以二分答案,变成询问矩形内有多少个点,这个可以直接树 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(21) 评论(0) 推荐(0) 编辑
摘要:考虑我们关心什么信息:每个寿司被谁选了。这个是 O(3n) 的。 但我们其实只关心一个信息:当前状态是否合法。这个是 O(1) 的。 显然后者过于简单以至于我们无法转移状态,考虑折中一点,我们想知道是否合法,想在新加入一个寿司的时候判断是否合法,那么我们需要知道每一个质因子被谁选了,这是 阅读全文
posted @ 2023-02-21 16:54 PYD1 阅读(16) 评论(0) 推荐(0) 编辑
摘要:先考虑两个包含的区间能否转化,发现并不可以。 有一个显然的想法是我们可以暴力求出每个位置的上界 upi。 现在问题变成 vimxi,同时要求 i[1,Q],j[Li,Ri],vj=xi。 这个问题好像不是很好做,我想 阅读全文
posted @ 2023-02-21 16:53 PYD1 阅读(20) 评论(0) 推荐(0) 编辑
摘要:首先显然是个 dp。 然后我们来考虑设计状态。一个比较自然的想法是设 fu,gu 分别表示 u 子树内满足 牵扯到其子树 / 完全在其子树内 的限制的答案。但是 guv 合并来时,倘若不选 (u,v) 这条边,按理说应该是 fv ,但这时多考虑了一些限制,无法转 阅读全文
posted @ 2023-02-21 16:53 PYD1 阅读(24) 评论(1) 推荐(0) 编辑
摘要:我们注意到这是个动态问题,且不容易直接解决,考虑怎么把它变成静态问题。 考虑 CDQ 分治,发现没有卵用,一方面因为 CDQ 分治要求各操作对询问贡献独立,然而我们的任一单独操作都不会对询问产生贡献,只有若干操作合并到一起时才可能产生贡献;另一方面,这个题要求某种意义上的在线(不过 CDQ 好像也可 阅读全文
posted @ 2023-02-21 16:52 PYD1 阅读(16) 评论(0) 推荐(0) 编辑
摘要:不妨把 B 也由大到小排序。 先考虑怎么推一推式子。我们要求的是 πni=1min 然后我们可以把 B_n 提出来,考虑能否进 阅读全文
posted @ 2023-02-21 16:52 PYD1 阅读(21) 评论(0) 推荐(0) 编辑
摘要:关于 Lucas 定理 起初,有一个 \binom{n}{m},我们想要计算它,但它可能太大了,我们只想要计算它取模质数 p 的结果。但当 n,m 真的很大的时候,我们还是没有办法计算它。这可真是太不好了。 考虑怎么计算 \binom{n}{m} %\ p 的结果,容易想到: $$ 阅读全文
posted @ 2023-02-21 16:52 PYD1 阅读(15) 评论(0) 推荐(0) 编辑
摘要:考虑什么时候 \binom{n}{m}\equiv 1(\bmod 2),由 Lucas 定理,我们知道 $$ \binom{n}{m}\equiv \binom{\lfloor\frac{n}{2}\rfloor}{\lfloor\frac{m}{2}\rfloor}\binom{n % 2} 阅读全文
posted @ 2023-02-21 16:52 PYD1 阅读(15) 评论(0) 推荐(0) 编辑
摘要:我们考虑到,行与行之间的交互只可能通过一个 1\times2 的竖着的小长方形来实现,可以把这一部分先丢出去不考虑,先考虑如下子问题:i 列用 k个,只能横着放,有多少种方案。 显然我们可以枚举第一行用了几个,有 $$ g_{i,k}=\sum_{j=1}^{k-1}\binom{i-1 阅读全文
posted @ 2023-02-21 16:51 PYD1 阅读(43) 评论(0) 推荐(0) 编辑
摘要:显然整除关系构成一张 DAG,我们每次选择一个点之后可以覆盖所有它能到达的点,在这个情况下再询问这个题的问题。 显然所有点都被覆盖等价于所有入度为 0 的点被选择,我们可以简单求出入度为 0 的有几个,这个可以 O(n \log\log n) 或者线性处理最小不妨设为 p,接下来就是 阅读全文
posted @ 2023-02-21 16:51 PYD1 阅读(23) 评论(0) 推荐(0) 编辑
摘要:记 a_i 前缀和为 t_it_n=Sb_i 前缀和为 s_i ans=\sum_{\sum b_i=S}\sum_{i=1}^nw_i|s_i-t_i| 套路地拆贡献,我们有[^1] $$ \begin{aligned}ans&=\sum_{i=1}^nw_i 阅读全文
posted @ 2023-02-21 16:51 PYD1 阅读(23) 评论(0) 推荐(0) 编辑
摘要:显然我们可以解出 a_i>b_i,a_i<b_i 的分别有 x,y 组。 首先,我们把这个东西当成一个配对,可以考虑一下把所有的数合并到一起排序。 然后显然可以有一个 dp,记 dp_{i,cnt,p_1,p_2} 表示我们目前考虑到了第 i 个数,当前满足 a_i>b_i 的数 阅读全文
posted @ 2023-02-21 16:47 PYD1 阅读(30) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示