P9143 [THUPC 2023 初赛] 众数
P9143 [THUPC 2023 初赛] 众数
考虑最终序列的形式。一个自然的想法是不断从
正确性证明:考虑众数序列
接下来考虑贡献。考虑一个数
时间复杂度
#include <bits/stdc++.h>
using namespace std;
constexpr int N = 1e5 + 5;
long long n, ans, a[N], f[N];
int main() {
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i = n, mx = 0; i; i--) {
while(mx < a[i]) mx++, f[mx] = f[mx - 1] + i;
ans += f[a[i]];
}
cout << ans << "\n";
return 0;
}