POJ - 2785 4 Values whose Sum is 0(二分枚举)
来源:互联网 发布:淘宝评价赚钱 编辑:程序博客网 时间:2024/05/22 03:35
The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d = 0 . In the following, we assume that all lists have the same size n .
Input
The first line of the input file contains the size of the lists n (this value can be as large as 4000). We then have n lines containing four integer values (with absolute value as large as 2 28 ) that belong respectively to A, B, C and D .
Output
For each input file, your program has to write the number quadruplets whose sum is zero.
Sample Input
6
-45 22 42 -16
-41 -27 56 30
-36 53 -37 77
-36 30 -75 -46
26 -38 -10 62
-32 -54 -6 45
Sample Output
5
Hint
Sample Explanation: Indeed, the sum of the five following quadruplets is zero: (-45, -27, 42, 30), (26, 30, -10, -46), (-32, 22, 56, -46),(-32, 30, -75, 77), (-32, -54, 56, 30).
题意
a,b,c,d四个数组,从每一个数组中挑一个形成一个组合,求最多有多少个组合数为0.
#include<iostream>#include<algorithm>using namespace std;#define N 4002int a[N],b[N],c[N],d[N],e[N*N],f[N*N];int main(){ std::ios_base::sync_with_stdio(false); int t,i,j,q=0; cin>>t; for(i=0;i<t;i++) cin>>a[i]>>b[i]>>c[i]>>d[i]; for(i=0;i<t;i++) for(j=0;j<t;j++) e[i*t+j]=a[i]+b[j]; for(i=0;i<t;i++) for(j=0;j<t;j++) f[i*t+j]=c[i]+d[j]; sort(e,e+t*t); sort(f,f+t*t); //把f数组中的数在e数组中查找,upper_bound-lower_bound返回值为1,表示能找到 for(i=0;i<t*t;i++) q+=upper_bound(e,e+t*t,-f[i])-lower_bound(e,e+t*t,-f[i]); cout<<q; }
- poj 2785 4 Values whose Sum is 0 (二分+枚举)
- POJ - 2785 4 Values whose Sum is 0(二分枚举)
- poj 2785--4 Values whose Sum is 0(折半枚举)
- POJ 2785 4 VALUES WHOSE SUM IS 0 【折半枚举】
- [折半枚举] poj 2785 4 Values whose Sum is 0
- POJ 2785 4 Values whose Sum is 0(折半枚举)
- POJ 2785 4 Values whose Sum is 0 折半枚举
- 4 Values whose Sum is 0 (POJ-2785) (折半枚举)
- POJ 2785 4 Values whose Sum is 0【折半枚举】
- 【poj 2785】4 Values whose Sum is 0 【折半枚举】
- POJ 2785 4 Values whose Sum is 0 二分
- POJ 2785 4 Values whose Sum is 0(二分)
- POJ 2785 4 Values whose Sum is 0 二分
- poj 2785 4 Values Whose Sum is 0 --- 二分
- poj 2785 二分问题 4 Values whose Sum is 0
- ACM-二分-POJ-2785-4 Values whose Sum is 0
- POJ 2785:4 Values whose Sum is 0 二分
- Poj 2785 4 Values whose Sum is 0【二分查找】
- Node节点对象
- CRAZEPONY飞控学习(一)
- Charles破解安装
- 问题二十:C++全局debug “ray tracing图形”实例
- 三羊献瑞
- POJ - 2785 4 Values whose Sum is 0(二分枚举)
- C++类的总结
- android 画柱状图
- 《鬼子来了-姜文》——鬼子与“我”
- [POJ2891]Strange Way to Express Integers(扩展中国剩余定理)
- 第三天-中软!
- 数组内存分配之堆、栈
- Solr字段类型field type的定义
- 怎么看越努力,越幸运?