题目要求在 n 个符文灵力值中,选出三个符文,使得最大值与最小值之差恰好为 1,即满足 max−min=1。分析可知,这样的三元组一定由两种灵力值组成,且两种灵力值相差 1,并且三元组中必有两个元素相等:
使用哈希表(桶)统计每种灵力值出现的次数。记灵力值 v 的出现次数为 cnt[v]。
遍历哈希表中的每一种灵力值 x,计算其对答案的贡献:
魔法师从卷轴中解封了一组共 n 个符文,每个符文都有一个整数灵力值。他想要从中挑选三个符文进行共鸣实验:若这三个符文的灵力值中最大值与最小值之差恰好为 1,则它们可以形成一次共鸣。请你计算出所有可行的三符文组合数。
符文总数 n 满足 3≤n≤200000。每个灵力值均为 1 到 109 之间的整数。
第一行包含一个整数 n,表示符文的数量。 第二行包含 n 个整数,表示每个符文的灵力值。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册