禁止访问
解题思路
-
问题分析:
-
我们需要处理三种操作:授予特定页面权限、授予所有页面权限、查询权限状态
-
关键在于高效记录每个用户的权限状态,并快速响应查询
-
-
数据结构选择:
-
使用
vis数组标记用户是否有全部权限(操作2) -
使用
set数组s记录每个用户拥有的特定页面权限(操作1) -
set提供了O(log n)的查找和插入效率,适合本题的数据规模
-
-
查询处理逻辑:
-
当查询用户x对页面y的权限时:
-
首先检查
vis[x],如果为真则直接返回"Yes"(有全部权限) -
否则在
s[x]集合中查找y,存在则返回"Yes"(有特定权限) -
都不满足则返回"No"(无权限)
-
-
-
复杂度分析:
-
操作1(插入):O(log m)
-
操作2(标记):O(1)
-
操作3(查询):O(log m)
-
总体复杂度:O(q log m),可以处理题目中的最大数据规模
-


浙公网安备 33010602011771号