摘要: HDU 5737 很明显能发现数据是随机的。 我们用set去维护值一样的段, 因为随机所以set里面线段的大小减少得很快, 平均大概30个左右。 每次查询暴力处理每一段相同的在主席树上查找累加答案就可以了。 但是这个好像不是标算, 标算复杂度(n + m) * log(n) 并且数据不是随机也可以。 阅读全文
posted @ 2019-09-13 19:51 NotNight 阅读(206) 评论(0) 推荐(0) 编辑
摘要: HDU - 5741 我们枚举段的起点和终点, 那么每一种情况0的范围是[lx, rx], 1的出现范围是[ly, ry], 可以在二维平面上用矩形表示。 然后问题就变成了询问点有没有被至少一个矩形覆盖, 扫描线 + 树状数组就可以了。 阅读全文
posted @ 2019-09-13 16:55 NotNight 阅读(184) 评论(0) 推荐(0) 编辑
摘要: HDU - 5735 感觉这个思路相当巧妙啊。。 考虑最普通的 dp[ i ] = max(dp[ j ] + w[ i ] opt w[ j ]), j 是 i 的祖先。 把(2 << 16) 分成前八位和后八位去优化最朴素的dp。 修改遍历后八位, 查询遍历前八位。 阅读全文
posted @ 2019-09-13 15:53 NotNight 阅读(142) 评论(0) 推荐(0) 编辑