距离题解

· · 题解

Source & Knowledge

2024 年 9 月语言月赛,由洛谷网校入门计划/基础计划提供。

题目大意

n 个同学,每次操作会修改两个同学间的好感度,你需要在每次操作之后求出同学之间的最大亲密度。

题目分析

本题考察数组综合与复杂循环。

考虑到 n 很小,用一个二维数组来 p 记录同学之间的好感度。设 p_{x,y} 表示学号 x 的同学与学号为 y 的同学的好感度,则对于修改操作,若 op=1,则将 p_{a,b} 的值增加 c;否则将 p_{a,b} 的值减少 c。然后枚举每一对同学,找出最大的好感度。

核心代码

修改操作:

if (op == 1)
  p[a][b] += c;
else
  p[a][b] -= c;

找出最大的好感度:

Max = 0;
for (int i = 1; i <= n; i++)
  for (int j = 1; j <= n; j++) {
    Max = max(Max, p[i][j]);
  }