这个水题很有意思,明显我们发现所求的值,只和1,2的存在有关
统计一下 推出公式就行Orz
#include <bits/stdc++.h>
using namespace std;
#define ls st<<1
#define rs st<<1|1
#define LL long long
const int MAXN= (int) 1e6+10;
int arr[MAXN];
int main() {
ios::sync_with_stdio(false);
int n, x;
cin >> n;
int x1=0, x2=0, x3=0;
for (int i = 0; i < n; ++i) {
cin >> x;
if (x == 1)
x1++;
else if (x == 2)
x2++;
else
x3++;
}
cout << x1*(x1+x2+x3-1)+x2*(x2-1)/2 << endl;
return 0;
}
本文介绍了一个有趣的编程题目解决方案,通过简单的统计方法快速计算特定数值组合的出现次数。利用C++代码实现,重点在于理解题目背后的数学规律,并通过高效的数据处理方式得出答案。
800

被折叠的 条评论
为什么被折叠?



