Ir para o conteúdo
onsuggest
Entrar
Artigo zh

Luogu-P4755 Beautiful Pair

Fonte: ChungZH 的小窝 ·

Luogu-P4755 Beautiful Pair 题意 小 D 有个数列 ${a}$,当一个数对 $(i,j)$($i \le j$)满足 $a_i$ 和 $a_j$ 的积不大于 $a_i, a_{i+1}, \ldots, a_j$ 中的最大值时,小 D 认为这个数对是美丽的。请你求出美丽的数对的数量。 $1\le n\le{10}^5$,$1\le a_i\le{10}^9$。 编程时的问题 对 ST 表不熟悉! 更 zz 的是,对 lower_bound 和 upper_bound 理解有问题,来复习一下小学知识:lower_bound 是找到“大于等于”的位置,upper_bound 是“大于”。写这道题的时候找小于某数的位置莫名其妙地用了 lower_bound,更没有 -1,完全是随手写的,半天也没察觉到这里有问题。 综上,我是 zz。 思路 考虑分治(据说这是套路),我们找出一个区间 $[l, r]$ 内的最大值位置 $mid$,然后统计所有跨过 $mid$ 的答案,再递归处理 $[l, mid-1], [mid+1, r]$。假设 $mid$ 左边的数是 $a_i$,右边的数是 $a_j$,根据题目得 $a_i * a_j \le a_{mid}$,即 $a_j \le \lfloor\frac{a_{mid}}{a_i}\rfloor$。那么我们枚举 $a_i

Atalhos de teclado

Descoberta anterior
←P
Próxima descoberta
→N
Gosto
L
Não é para mim
X
Guardar
S
Mostrar esta ajuda
?
Fechar
Esc

Os atalhos funcionam na página de descobertas.