摘要: 题目中坐标轴 $1$ 到 $n$($n\leq10^5$)有初始高度为 $0$ 的 $n$ 个房子,人在 $(0,0)$ 处,有 $m$ 次($m\leq10^5$)修改房子高度操作,每次修改后求可见楼房数(连线不被遮挡)。思路:维护各点与 $(0,0)$ 连线斜率,可见楼房斜率严格递增且优先左边。直接暴力修改 $O(1)$、查询 $O(n)$;采用线段树,维护节点满足要求的斜率序列长度,左儿子可直接合并,右儿子按需递归合并。单点修改,被影响结点 $O(\log n)$ 个,每次合并 $O(\log n)$,修改复杂度 $O(\log^2 n)$,全局查询 $O(1)$。代码实现上述逻辑。 阅读全文
posted @ 2025-02-16 20:07 wing_heart 阅读(12) 评论(0) 推荐(0)
摘要: 有 $n$ 个长 $a_i$($n,a_i\leq10^5$)的随机字符串,$f(s)$ 是 $s$ 最小循环移位起始位置(多解取最小),求两循环序列 $\{f(s_i)\}$ 期望相同位置数。思路:算相邻 $f$ 相同概率求和,定义 $h_a$ 求 $g(f(a)=x)$,归并因数更新求解,预处理因数与 $h$,复杂度 $O((n + q)因数个数 + n\sqrt{n})$,代码实现计算。 阅读全文
posted @ 2025-02-16 19:37 wing_heart 阅读(116) 评论(0) 推荐(0)