摘要:
题意:飞机有 $n$ 排座位($1 \le m \le n \le 1000000$),$m$ 人登机,前后各有一个入口,每人有分配座位(可能相同),登机时若座位被占则朝进入方向找空位,若走到尽头未找到则愤怒,求无人生气的座位分配及登机方案数对 $10^9 + 7$ 取模结果。思路:将问题转化为概率问题,看成环形座位(环长 $n + 1$,在 $1,n$ 衔接处设座位 $0$),每个人随机分配座位和方向,因每个座位等价,一个座位被占据概率是 $\frac{m}{n + 1}$,则 $0$ 未被占用概率为 $\frac{n + 1 - m}{n + 1}$,而方案总数为 $(2(n + 1))^m$,所以合法方案数为 $(2(n + 1))^m \times \frac{n + 1 - m}{n + 1}$ 。 阅读全文
posted @ 2025-09-28 15:11
wing_heart
阅读(13)
评论(0)
推荐(0)
摘要:
可持久化平衡树。 阅读全文
posted @ 2025-09-28 10:41
wing_heart
阅读(7)
评论(0)
推荐(0)
摘要:
题意:给定 $n$ 个区间 $[L_i, R_i]$,每次询问 $l, r, x$,对于 $i \in [l, r]$,从左至右枚举 $i$,若 $x \in [L_i, R_i]$,则 $x \gets x + 1$。思路:离线时可采用《插入 - 标记 - 回收》算法,用平衡树实现单 $\log$ 复杂度。在线时,通过预处理区间 $[a, b]$,计算 $x \in [0, V]$ 走过该区间后增加值,利用线段树处理询问。线段树节点 $u$ 表示区间 $[a, b]$,由于值域 $V$ 大,将值域分成若干段,每段增加值相同,用 vector 存储这些段信息。建树时,通过归并两个儿子的 vector 合并区间,复杂度 $O(n \log n)$。查询时,对每个线段树节点二分查找 $x$ 在对应 vector 位置并更新 $x$,时间复杂度 $O(m \log^2 n)$,空间复杂度与时间复杂度相同 。 阅读全文
posted @ 2025-09-28 09:43
wing_heart
阅读(14)
评论(0)
推荐(0)

浙公网安备 33010602011771号