码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 1152 4 Values whose Sum is 0

时间:2015-11-07 23:12:50      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:

题意:

  四个集合,要求每个集合中选出一个数字,四个数字相加为0,问四个数字相加为零的次数有几次

分析:

  先把A+B的和存到sum数组里,然后再从中找-(c+b)出现的个数。求长度为n的有序数组a中的数k的个数num:num=upper_bound(a,a+n,k)-lower_bound(a,a+n,k);

代码:

  

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=4005;
int T,n;
int A[maxn],B[maxn],C[maxn],D[maxn],sum[maxn*maxn];
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
int i,j;
for(i=0;i<n;i++)
scanf("%d%d%d%d",&A[i],&B[i],&C[i],&D[i]);
int c=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
sum[c++]=A[i]+B[j];
sort(sum,sum+c);
long long ans=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
ans+=upper_bound(sum,sum+c,-C[i]-D[j])-lower_bound(sum,sum+c,-C[i]-D[j]);
}
}
printf("%lld\n",ans);
if(T)
printf("\n");
}
}

UVA 1152 4 Values whose Sum is 0

标签:

原文地址:http://www.cnblogs.com/137033036-wjl/p/4946267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!