求大佬调
  • 板块P1566 加等式
  • 楼主Cheng_KOI
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/14 06:51
  • 上次更新2023/10/27 07:37:37
查看原帖
求大佬调
203172
Cheng_KOI楼主2022/10/14 06:51
#include<bits/stdc++.h> 
using namespace std;
long long a[60],c[500000],b[500000];
int main()
{
	long long i,j,k,n,m,o,ans=0,max=-1;
	scanf("%lld",&n);
	for(i=1;i<=n;i++)
	{
		ans=0;
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		memset(c,0,sizeof(c));
		scanf("%lld",&k);
		for(j=1;j<=k;j++)
		{
			scanf("%lld",&a[j]);
			c[a[j]]=1;
		}
		sort(a+1,a+k+1);
		for(m=1;m<=k;m++)
		{
			for(o=k;o>=1;o--)
			{
				if(c[a[m]+a[o]]==1)
				{
					if(o>=m)
						b[a[m]+a[o]]+=b[a[o]];
					else
						b[a[m]+a[o]]+=(b[a[o]]+1);
				}
			}
		}
		for(j=1;j<=k;j++)
			ans+=b[a[j]];
		printf("%lld\n",ans);
	}
	return 0;
}
2022/10/14 06:51
加载中...