POJ 2785 4 Values whose Sum is 0
传送门:http://poj.org/problem?id=2785
解题思路:
从这四个数列中选择的话总有n的4次方中情况,所以全部判断一遍不可行。不过将他们对半分成AB和CD再考虑的话就可以解决了。从两个数列中选择的话只有n的2次方中组合。所以可以枚举。从A,B中取出a,b后,为了使总和为0则需要从C,D中取出a+b=-(c+d);先将a和b数组的和存在一个数组ab里面,再将c和d相加的相反数-(c+d)在ab数组里面查找,用的是二分查找。
实现代码:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std;const int MAXN=4005;int a[MAXN][4]; int b[MAXN*MAXN];void solve(int n){memset(b,0,sizeof(b));for(int i=0;i<n;i++)for(int j=0;j<n;j++)b[i*n+j]=a[i][0]+a[j][1];sort(b,b+(n*n));int ans=0;for(int i=0;i<n;i++)for(int j=0;j<n;j++){int tmp=-(a[i][2]+a[j][3]);ans+=upper_bound(b,b+(n*n),tmp)-lower_bound(b,b+(n*n),tmp);}printf("%d\n",ans);}int main(){int n;scanf("%d",&n);for(int i=0;i<n;i++)for(int j=0;j<4;j++)scanf("%d",&a[i][j]);solve(n); }
转载于:https://www.cnblogs.com/IKnowYou0/p/6665104.html
POJ 2785 4 Values whose Sum is 0相关推荐
- POJ 2785: 4 Values Whose Sum is 0
链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21897 题意:就是给你4个数组,现在问你有多少种方案,使得在每个数组中 ...
- poj2785 4 Values whose Sum is 0
原题链接: poj2785 4 Values whose Sum is 0 题意:给出元素都为n的4个数组A,B,C,D,要从每个数组中各取一个数,求这四个数和为0的次数,一个数列有多个相同数字时,当 ...
- 【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 ...
- POJ 2785: four values sum is zero
问题描述: 给定四个长度为n的数组A, B, C, D. 要求从每个数组中取一个数, 这样得到四个数, 并且这四个数的之和为0. 求这样组合的个数. 限制条件: 1<= n <= 4000 ...
- 【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, ...
- 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 ...
- uva 1152 ——4 Values whose Sum is 0
题意:给定4个n元素集合,要求从每个集合中选择一个数,使得A+B+c+d==0,问存在多少种方法. 思路:枚举+hash判断.直接枚举4次方的算法会超,那么只需要枚举ab,然后在c+d的和中查找等于- ...
- POJ 2785 有多少种4个数相加等于0的方案(二分查找 or hash)
文章目录 1.二分查找法 1.1 思路: 1.2 AC代码 2.hash查找法 2.1 思路: 2.2 Wrong Answer 代码 2.3 Time Limit Exceeded 代码 2.4 偷 ...
- Python Numpy多维数组.sum(axis=0/1/2...) 详解
Python Numpy多维数组.sum(axis=0/1/2-) 详解 numpy中axis取值的说明 首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维 ...
最新文章
- centos 7.4 上安装neo4j并测试
- TensorFlow serving远程访问引擎的容器部署
- 【MapReduce】
- oc 实例变量可见度、方法
- simulink仿真学习(实现半波整流、方波输出) day1
- 最近素数问题——C语言
- 怎么更改wifi频段_科普 | 你了解WiFi信号扩展器吗?
- python--之np.any,np.a;;
- java装箱与拆箱_【转】java 自动装箱与拆箱
- iphone自适应屏幕亮度_如何降低iPhone的亮度低于iOS允许的亮度
- golang switch使用
- Ubuntu关闭开机自启动服务
- 使用Python进行OpenCV颜色检测和过滤
- 关于api-ms-win-crt-runtimel1-1-0.dll缺失引发的解决方案
- ZB雕刻用鼠标和数位板的差别大不大?怎么买手绘板?ZB雕刻手绘是不是很重要?
- Android集成腾讯X5浏览器内核库
- 对字符串进行一个顺序排列
- 下载Xcode历史版本方法
- 尚硅谷SpringMVC笔记
- 验收报告模版(转载)
热门文章
- 线性结构 -- 连续存储(数组), 1个简单的c语言代码实现.
- 解决gnome3 不能设置无线网络属性
- Android应用签名作用,安卓app签名功能
- shell去掉字符两端字符_Shell脚本8种字符串截取方法总结
- bgb邻居关系建立模型_学习开发知识图谱中的长期关系依赖
- HCIA- Datacom认证增加了SDN跟自动化编程
- Knative Serving 进阶: Knative Serving SDK
- 手机html图片模糊,css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题_html/css_WEB-ITnose...
- 高效程序员的45个习惯 pdf_高效瑜伽人的 5 个习惯,你get到了几个?
- 远程定位gps linux,GPS(NMEA)数据解析