P2141 [NOIP2014 普及组] 珠心算测验【题解】

一道很 水 \blue{水} 的模拟题

难 度 普 及 减 难度\orange{普及减}

题目名称是珠心算但是其实和珠心算没有一点关系。

近几年的普及组题目越来越难了,可当我看到数据范围:
3 ≤ n ≤ 100 3\leq n\leq100 3n100

得了,暴力膜你 模拟。

为了更好地模拟,我们先将数组排序,再 O ( n 3 ) O(n^3) O(n3)地判断即可。记得用 v i v_i vi记录一个和是否被访问过。

A C   C o d e : AC\space\blue{Code:} AC Code:

#include<bits/stdc++.h>
using namespace std;
int v[1400000],a[140],n,tot;
int main()
{
    
    
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+n+1);
	for(int i=1;i<=n-2;i++)
		for(int j=i+1;j<=n-1;j++)
		{
    
    
			int ans=a[i]+a[j];
			if(v[ans]) continue;
			for(int k=j+1;k<=n;k++)
				if(a[k]==ans)
				{
    
    
					tot++;
					v[ans]=1;
				}
		}
	cout<<tot<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_62444770/article/details/120615088