统计频次:
使用哈希表(或字典)统计序列 a 中每个整数 x 出现的次数,记为 cnt[x]。
枚举彩虹阶梯的起始值:
一个长度为 5 的子序列要成为“彩虹阶梯”,其五个元素的值经过排序后必须是连续的五个整数,即存在某个整数 v,使得这五个元素的值恰好为
因此,对于每个可能的起始值 v,若 cnt[v], cnt[v+1], cnt[v+2], cnt[v+3], cnt[v+4] 均大于 0,则从原序列中选出这五个值的子序列的方案数为它们的乘积:
小蓝有一个长度为 n 的整数序列 a1,a2,…,an。她定义一个“彩虹阶梯”为满足以下条件的长度为 5 的序列:将其所有元素按从小到大排序后,每个元素恰好比前一个元素大 1。
现在,小蓝想知道,原序列有多少个长度为 5 的子序列是“彩虹阶梯”。这里,一个序列的子序列是指从原序列中删除若干个(可以为零个)元素后,保持原有顺序得到的新序列。
由于答案可能很大,请将结果对 109+7 取模。
序列的长度 n 满足 1≤n≤105,序列中的每个整数 ai 满足 1≤ai≤109。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册