求助一道题
  • 板块学术版
  • 楼主rabbyte
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/3/25 20:44
  • 上次更新2023/10/28 05:41:35
查看原帖
求助一道题
638235
rabbyte楼主2022/3/25 20:44

kl

#include<bits/stdc++.h>

using namespace std;

int T,n,a[2010],tot,ans,noww;

struct NODE
{
	int sum,x,y;
}b[2000010];

bool cmp(NODE x,NODE y)
{
	return x.sum<y.sum;
}

int main()
{
	scanf("%d",&T);
	while(T--)
	{
		noww++;
		scanf("%d",&n);
		tot=0,ans=0;
		for(int i=1;i<=n*n-((n*(n-1))/2)+10;i++)
			b[i].sum=0,b[i].x=0,b[i].y=0;
		for(int i=1;i<=n;i++) scanf("%d",&a[i]);
		for(int i=1;i<=n;i++)
		{
			for(int j=i+1;j<=n;j++)
			{
				b[++tot].sum=a[i]+a[j];
				b[tot].x=a[i];
				b[tot].y=a[j];
			}
		}
		sort(a+1,a+1+tot,cmp);
		for(int i=1;i<=n;i++)
		{
			int j=upper_bound(b+1,b+1+tot,a[i],cmp)-b-1;
			for(j;j<=tot;j++)
			{
				if(a[i]==b[j].x||a[i]==b[j].y) continue;
				if(a[i]+b[j].x>b[j].y&&a[i]+b[j].y>b[j].x) ans++;
			}
		}
		printf("Case %d: %d\n",noww,ans);
	}
    return 0;
}
/*
给定一些木棍的长度,求有多少种三支木棍的组合可以组成三角形
n<=2000
*/

这个代码会报错,可是蒟蒻不知道怎么改才能不报错 wq

2022/3/25 20:44
加载中...