题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1305
统计1和2的数量
1-1是2 1-x(不为1)是1 2-2是1
时间复杂度O(n)
#include<iostream> using namespace std; const int maxn=1e5+5; int a[maxn],n,n1=0,n2=0; int main() { __int64 sum; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; if(a[i]==1) n1++; else if(a[i]==2) n2++; } int n11=n1*(n1-1)/2,n1x=n1*(n-n1),n22=n2*(n2-1)/2; sum=n11*2+n22+n1x; cout<<sum; }
本文介绍了一个简单而有效的算法,用于统计数组中1和2出现的次数,并计算特定组合的数量。通过一次遍历,该算法实现了O(n)的时间复杂度。文章详细展示了算法的实现过程,包括输入读取、计数逻辑及最终结果的计算。
4万+

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



