第八次

A

将 $a_i$ 分解质因数,设 $b_i=[\exists j,i|a_j]$,则 $i$ 是答案,当且仅当 $\forall j|i,b_j=0$。

B

二分 $\min(|x_i-x_j|,|y_i-y_j|)$,考虑 check 当前答案 $k$。

枚举点对中 $x$ 较大的点 $(x_i,y_i)$,则另一个点只能选 $x_j\le x_i-k$ 的 $j$ 点,

只需判断这些点中是否存在 $|y_i-y_j|\ge k$ 的 $j$ 点,维护前缀最值即可。

C

设 $f_{i,j}$ 表示 $i$ 个数填出 $j$ 的方案数,则 $f_{i,j}=f_{i-1,j-1}+f_{i,j-i}-f_{i-m-1,j-i}$,

$f_{i-1,j-1}$ 即为 $i-1$ 个数凑出 $j-1$ 的方案数,加一个 $1$ 即可用 $i$ 个数凑出 $j$,

$f_{i,j-i}$ 即为 $i$ 个数凑出 $j-i$ 的方案数,整体加一即可用 $i$ 个数凑出 $j$,

$f_{i-m-1,j-i}$ 即为 $i-m-1$ 个数凑出 $j-i$ 的方案数,整体加一,且前面加上 $m+1$ 个 $1$ 即可用 $i$ 个数凑出 $j$,

需要减去这些相同数出现超过 $m$ 次的方案。

D

扫描询问右端点 $r$,维护 $c_i$ 表示询问左端点为 $i$ 的答案。

考虑加入右端点为 $r$ 的绳子 $[l,r]$ 的贡献,

询问左端点 $>l$ 时 $[l,r]$ 不可能用上,所以对 $c_i|i>l$ 没有影响,

询问左端点 $\le l$ 时,若不用 $[l,r]$,$i$ 点能走到 $\ge l$ 的位置,则用上 $[l,r]$,$i$ 点能走到 $r$,

即更新 $c_i\gets r|i\le l,c_i\ge l$,吉司机线段树维护之。

posted @ 2023-07-28 19:05  Jijidawang  阅读(13)  评论(0)    收藏  举报  来源