Loading

摘要: 本题不弱于小 Z 的袜子,考虑分块,令 \(B\) 为块数。 先考虑单点修改,可以令 \(f(x,y)\) 表示从块 \(x\) 中选出一个数,然后从块 \(y\) 中选出同样的数的方案数,放到平面上,有值的地方就是一个三角形,询问也是询问一个三角形中的 \(f(x,y)\) 和。 怎么做修改,对每 阅读全文
posted @ 2021-09-15 21:36 Qiuly 阅读(182) 评论(0) 推荐(0)
摘要: 这一类题带有鲜明的套路:分块,然后将跳大块和跳小块分开计算复杂度,跳大块最多跳 $B$ 次,小块最多暴力更新 $\frac{n}{B}$ 次。 同样考虑维护 $b_i$ 表示 $i$ 第一次跳出所在块会跳到哪里去,那么查询的话就可以两个点往前跳,跳到同一个大块后再继续不断跳 $b_i$ 直到相等,撤回来跳 $a_i$ 即可,单次是 $B+\frac{n}{B}$ 的。 问题在于怎 阅读全文
posted @ 2021-09-15 14:20 Qiuly 阅读(48) 评论(0) 推荐(0)
摘要: 容易发现关键在于怎么把树建出来,考虑扫描线,从左往右扫,用平衡树维护与当前扫描线相交的所有图形的两个交点。因为不存在相交情况,所以很方便的一点就是,交点之间 \(y\) 的大小关系不会改变。 插入一个点的时候,找到这个点下面第一个点:如果这个点是上交点,那么两个图形肯定共用父亲;如果这个点是下交点, 阅读全文
posted @ 2021-09-15 13:13 Qiuly 阅读(46) 评论(0) 推荐(0)
摘要: 考虑一对数的贡献,注意到这样的话剩下的数的方案数因为上界变得不好计算,考虑先将 $a_i$ 从小到大排序,然后将选排列看作从左往右选数,就可以解决上述问题。 令 $b_i$ 表示 $a_i$ 排序后的结果,$c_i$ 表示 $b_i$ 在原序列的哪个位置,不难发现一对 阅读全文
posted @ 2021-09-15 09:36 Qiuly 阅读(70) 评论(0) 推荐(0)