禁止访问

解题思路

  1. 问题分析

    • 我们需要处理三种操作:授予特定页面权限、授予所有页面权限、查询权限状态

    • 关键在于高效记录每个用户的权限状态,并快速响应查询

  2. 数据结构选择

    • 使用vis数组标记用户是否有全部权限(操作2)

    • 使用set数组s记录每个用户拥有的特定页面权限(操作1)

    • set提供了O(log n)的查找和插入效率,适合本题的数据规模

  3. 查询处理逻辑

    • 当查询用户x对页面y的权限时:

      • 首先检查vis[x],如果为真则直接返回"Yes"(有全部权限)

      • 否则在s[x]集合中查找y,存在则返回"Yes"(有特定权限)

      • 都不满足则返回"No"(无权限)

  4. 复杂度分析

    • 操作1(插入):O(log m)

    • 操作2(标记):O(1)

    • 操作3(查询):O(log m)

    • 总体复杂度:O(q log m),可以处理题目中的最大数据规模

 

posted @ 2025-04-28 19:15  CRt0729  阅读(16)  评论(0)    收藏  举报