zoukankan      html  css  js  c++  java
  • UVA 1152 4 Values whose Sum is 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 ",ans);
    if(T)
    printf(" ");
    }
    }
  • 相关阅读:
    ISpout源码解析
    storm完全分布式部署
    sqoop工具
    sqoop安装步骤
    HBASE常用配置
    linux命令无法使用:命令行输入:set>lll cat lll echo $PATH
    BubbleSort
    QuickSortWithRec
    面试题
    Nginx配置安装
  • 原文地址:https://www.cnblogs.com/137033036-wjl/p/4946267.html
Copyright © 2011-2022 走看看