RookScore

[ABC298F] Rook Score

关键在于如何排除交叉位置计算两次的干扰。

首先进行离散化,行和列是独立的,所以可以分别对行和列离散化。

考虑到可以枚举每一行,而每次覆盖到的点可以在线段树中减去这一行的点,然后查询答案;最后再修改回去。

也可以直接用一个 set,然后搞一个数组存储现在的情况,方便在 set 中找到元素,复杂度应该跟线段树差不多,常数稍大。

由于点的总数是 O(N) 级别,所以修改的量级是 O(N),单次修改 O(logN),而查询次数等于行数,最坏就是 O(N) 次,单次查询 O(logN),所以总复杂度就是 O(NlogN)

代码

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/17497913.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(13)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起