原题链接: poj2785 4 Values whose Sum is 0

题意:给出元素都为n的4个数组A,B,C,D,要从每个数组中各取一个数,求这四个数和为0的次数,一个数列有多个相同数字时,当作不同数字看待

//思路先枚举C,D的和排序,再枚举A,B的和在C,D和中进行折半查找C+D=-(A+B)的部分
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAX_N = 4000 + 5;
//输入
int n;
int A[MAX_N], B[MAX_N], C[MAX_N], D[MAX_N];
int CD[MAX_N * MAX_N]; //存C、D中的所有和
int main(){int n, i, j;scanf("%d", &n);for(i = 0;i < n;i ++)scanf("%d%d%d%d", &A[i], &B[i], &C[i], &D[i]); for(i = 0;i < n;i ++){   //枚举C、D的和存入CD中 for(j = 0;j < n;j ++)CD[i * n + j] = C[i] + D[j];}sort(CD, CD + n * n);    //对和排序 long long res = 0;for(i = 0;i < n;i ++){for(j = 0;j < n;j ++){int cd = -(A[i] + B[j]);//取出C和D中和为cd的部分(CD中>cd的第一个位置与>=cd的第一个位置相减) res += upper_bound(CD, CD + n * n, cd) - lower_bound(CD, CD + n * n, cd);}}printf("%lld\n", res);return 0;
}

poj2785 4 Values whose Sum is 0相关推荐

  1. 【ACM】Uva 1152 (4 Values whose Sum is 0) 二分查找lower_bound() 和upper_bound()的使用

    [问题描述] The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, ...

  2. 【POJ - 2785】4 Values whose Sum is 0 (二分,折半枚举)

    题干: The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, com ...

  3. uva1152 - 4 Values whose Sum is 0(hash或STL技巧ac)

    题目大意:给定4个n(1 <= n <= 4000)元素集合A, B, C, D,要求分别从中选取一个元素a, b, c, d,使得a+b+c+d = 0,问有多少种选法. method ...

  4. POJ 2785 4 Values whose Sum is 0

    传送门:http://poj.org/problem?id=2785 解题思路: 从这四个数列中选择的话总有n的4次方中情况,所以全部判断一遍不可行.不过将他们对半分成AB和CD再考虑的话就可以解决了 ...

  5. uva 1152 ——4 Values whose Sum is 0

    题意:给定4个n元素集合,要求从每个集合中选择一个数,使得A+B+c+d==0,问存在多少种方法. 思路:枚举+hash判断.直接枚举4次方的算法会超,那么只需要枚举ab,然后在c+d的和中查找等于- ...

  6. POJ 2785: 4 Values Whose Sum is 0

    链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21897 题意:就是给你4个数组,现在问你有多少种方案,使得在每个数组中 ...

  7. Python Numpy多维数组.sum(axis=0/1/2...) 详解

    Python Numpy多维数组.sum(axis=0/1/2-) 详解 numpy中axis取值的说明 首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维 ...

  8. mysql sum 为 0 的解决方法

    mysql sum 为 0 的解决方法 参考文章: (1)mysql sum 为 0 的解决方法 (2)https://www.cnblogs.com/huanghuanghui/p/9338037. ...

  9. torch.sum(),dim=0,dim=1解析

    直接上代码: # 定义一个2维张量a a = torch.tensor([[1,2,3],[4,5,6]]) print(a) a.shape output: tensor([[ 1, 2, 3],[ ...

最新文章

  1. 利用蒙特卡罗法,国外老哥成功制造出 100% 投篮命中的篮板!
  2. Laravel-自定全局函数
  3. Ubutu16.04+Cuda9.2/9.0+Cudnn7.12/7.05+TensorFlow-gpu-1.8/1.6
  4. Android 11 修改libcore update-api 遇到的问题
  5. 什么样的前端框架才是一个好框架
  6. 实现一个Ajax模式的文件上传功能有多难?
  7. lucene Collector 文档收集器
  8. Python进阶(一)Python中的内置函数、内置方法、私有属性和方法详解
  9. 11款中兴盒子固件合集分享(已列出全部型号,附刷机教程)
  10. Windows7系统的70个小技巧
  11. iconfont图标引入
  12. 安捷伦的仪器设备出售
  13. 【学习笔记】Servlet容器(Web容器)简介
  14. EGM2008-地球重力场
  15. vue视频播放组件vue-mini-player
  16. 初生牛犊:Windows下Anti-sandboxes技术探究
  17. 软件测试工程师面试一般常见问题汇总
  18. 1亿妹纸大姨妈的神器美柚:上云要切合业务需求,更要货比三家
  19. abaqus子程序开发学习笔记
  20. bootstrap响应式布局之阿里百秀

热门文章

  1. Springcloud服务降级 Error creating bean with name ‘deptConsumerController‘: Unsatisfied dependency expre
  2. 数据结构与算法题目集PTA
  3. B站高倍速播放的方法!
  4. 随机产生一个1-100之间的整数,看能几次猜中
  5. docker学习之Ubuntu系统部署docker
  6. GET方式请求参数中文乱码问题 [JavaWeb][Servlet]
  7. 快手普通主播怎么变现赚钱,掌握以下几点即可丨国仁网络资讯
  8. python图像识别分类_图像分类python
  9. 用html制作一个华为页面,Web前端项目实战——华为荣耀商城(学完html+css就可以做)...
  10. c语言open 函数,实例讲解C语言OPEN函数语法及其应用