P16265 [蓝桥杯 2026 省 Python B 组] 蓝小圈

题目描述

手机屏幕幽幽地亮起,“蓝小圈”社交平台的图标微微闪动。小蓝作为该平台的后端架构师,正盯着流量监控面板上不断跳动的数据。 为了提升用户粘性,平台产品经理提出了全新的“圈层互动”功能。系统中共有 $N$ 个用户结点,初始时,每位用户的“活跃度”均为 $0$,且彼此之间处于陌生人状态,没有任何社交关联。 随着产品功能的上线,后台日志将按顺序记录 $Q$ 条用户行为指令。这些指令如下: 1. 建立好友:用户 $X$ 与用户 $Y$ 相互关注,双方所在的社交圈正式连通。若两者已处于同一社交圈,则忽略此操作。 2. 发布个人动态:用户 $X$ 发布了一条个人动态,其个人活跃度提升 $A$ 个单位。 3. 圈层热议:用户 $X$ 发起了一个热门话题,该话题产生极强的辐射效应,使得所有与 $X$ 处于同一社交圈(即通过好友关系可直接或间接连通)的用户,其活跃度同步追加 $A$ 个单位。 4. 数据查询:运营团队请求获取用户 $X$ 当前的活跃度数,用于分析用户质量。 随着用户量激增,高频的社交互动请求让服务器核心计算模块面临巨大压力。作为小蓝的协助者,请你接管日志处理单元,并按顺序输出所有的查询结果。

输入格式

第一行包含两个正整数 $N$ 和 $Q$,分别代表平台用户总数与行为日志的总条数。 随后 $Q$ 行,每行描述一条具体的行为指令,格式遵循以下四种类型之一: - $1$ $X$ $Y$: 执行“建立好友”,连通用户 $X$ 与 $Y$ 的社交圈。 - $2$ $X$ $A$: 执行“个人动态”,为用户 $X$ 的活跃度增加 $A$。 - $3$ $X$ $A$: 执行“圈层热议”,为 $X$ 所在社交圈内的所有用户活跃度增加 $A$。 - $4$ $X$: 执行“数据查询”,查询用户 $X$ 的当前活跃度。

输出格式

针对每一条“数据查询”指令,输出单独的一行整数,代表目标用户当前的活跃度数值。

说明/提示

### 【评测用例规模与约定】 对于 $30\%$ 的评测用例,$1 \leq N \leq 1000$,$1 \leq Q \leq 1000$。 对于所有评测用例,$1 \leq N \leq 2 \times 10^5$,$1 \leq Q \leq 2 \times 10^5$,$1 \leq X, Y \leq N$,$1 \leq A \leq 10^9$。保证测试数据中至少包含一条类型为 $4$ 的“数据查询”指令。