题解 AcWing.4306 序列处理
AcWing 周赛题目。
介绍一种比较奇怪的写法。
对于每个数,统计它是否出现过,如果没有出现就持续将它 \(+1\),然后统计答案即可。
#include <iostream>
using namespace std;
int a[30010];
bool flag[30010];
int main()
{
int n;
cin >> n;
int cnt = 0;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
if (flag[a[i]])
{
while (true)
{
a[i]++;
if (!flag[a[i]]) break;
cnt++;
}
cnt++;
}
flag[a[i]] = true;
}
cout << cnt << endl;
return 0;
}

浙公网安备 33010602011771号