禁止访问
解题思路
- 
问题分析: - 
我们需要处理三种操作:授予特定页面权限、授予所有页面权限、查询权限状态 
- 
关键在于高效记录每个用户的权限状态,并快速响应查询 
 
- 
- 
数据结构选择: - 
使用 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号
浙公网安备 33010602011771号