2017-08-01 21:29:14

writer：pprp

```//首先将前两列任意两项相加得到数组x，再将后两列任意两项相加取反得到数组y，
//再将y排序，最后依次将x中的元素在y中进行
//二分查找，看有多少个相等的数加起来即为最终的结果。

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

][];
];
];
int ll, ans;

//search x[i] from array y[i]
void bit_search(int t)
{
,r = ll - ;
while(l < r)
{
mid = (l+r) >> ;
if(y[mid] < t)
l = mid + ;
else
r = mid;
}
while(y[l] == t && l < ll)  //可能有找到不止一个
{
ans++;
l++;
}
}

int main()
{
int n,i,j;

while(cin >> n)
{
ans = ,ll = ;

; i < n; i++) //record the data
cin >> a[i][] >> a[i][]
>> a[i][] >> a[i][];

; i < n; i++) //枚举左侧
{
; j < n ; j++)
{
x[ll++] = a[i][] + a[j][];
}
}

ll = ;

; i < n ; i++) //枚举右侧
{
; j < n ; j++)
{
y[ll++] = -(a[i][] + a[j][]); //这里取反 a + b + c + d = 0等价于a + b = -(c + d);
}
}
sort(y,y+ll);   //先排序

; i < ll ; i++)  //再进行二分查找，如果找到那么ans++
bit_search(x[i]);

cout << ans << endl;
}
;
}```

## POJ - 2785 - 4 Values whose Sum is 0 - 二分折半查找的更多相关文章

1. POJ - 2785 4 Values whose Sum is 0 二分

4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 25615   Accep ...

2. POJ 2785 4 Values whose Sum is 0（折半枚举+二分）

4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 25675   Accep ...

3. poj 2785 4 Values whose Sum is 0（折半枚举（双向搜索））

Description The SUM problem can be formulated . In the following, we assume that all lists have the ...

4. POJ 2785 4 Values whose Sum is 0（想法题）

传送门 4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 20334   A ...

5. POJ 2785 4 Values whose Sum is 0

4 Values whose Sum is 0 Time Limit: 15000MS   Memory Limit: 228000K Total Submissions: 13069   Accep ...

6. POJ 2785 4 Values whose Sum is 0（暴力枚举的优化策略）

题目链接: https://cn.vjudge.net/problem/POJ-2785 The SUM problem can be formulated as follows: given fou ...

7. POJ 2785 4 Values whose Sum is 0（哈希表）

[题目链接] http://poj.org/problem?id=2785 [题目大意] 给出四个数组,从每个数组中选出一个数,使得四个数相加为0,求方案数 [题解] 将a+b存入哈希表,反查-c-d ...

8. POJ 2785 4 Values whose Sum is 0 Hash！

http://poj.org/problem?id=2785 题目大意: 给你四个数组a,b,c,d求满足a+b+c+d=0的个数 其中a,b,c,d可能高达2^28 思路: 嗯,没错,和上次的 HD ...

9. [POJ] 2785 4 Values whose Sum is 0(双向搜索)

题目地址:http://poj.org/problem?id=2785 #include<cstdio> #include<iostream> #include<stri ...

## 随机推荐

1. MATLAB求解代数方程、微分方程的一些常用指令

MATLAB版本:R2015b 1.求解符号矩阵的行列式.逆.特征值.特征向量 A = sym('[a11, a12; a21, a22]');deltaA = det(A)invA = inv(A) ...

2. matlab 循环读入多个mat文件组合成一个mat文件

今天做实验,需要到这个功能,在朋友的告知下,写了代码,在此留个标记 clc clear load('F:\效果对比\colorhist\1.mat'); a=ans; a=a'; : filename ...

3. TCP数据包的封包和拆包

//该段博文为引用,非原创. 封包和拆包 作者:fengge8ylf  博客:http://blog.csdn.net/fengge8ylf 对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就 ...

4. IOS UIView 03- 自定义 Collection View 布局

注:本人是翻译过来,并且加上本人的一点见解. 前言 UICollectionView 在 iOS6 中第一次被引入,也是 UIKit 视图类中的一颗新星.它和 UITableView 共享一套 API ...

5. 初中级Web开发人员的福音：《JavaScript启示录》上市了

经历过14个月的等待,本书终于上市了,完全口语化叙述,请参考右边的链接. 本书介绍 本书无关于JavaScript设计模式,也无关于JavaScript面向对象代码实现.本书的写作目的也不是鉴别Jav ...

6. jQuery插件：跨浏览器复制jQuery-zclip（转载）

转载地址:http://www.cnblogs.com/linjiqin/p/3532451.html jQuery-zclip是一个复制内容到剪贴板的jQuery插件,使用它我们不用考虑不同浏览器和 ...

7. C++ string的大小写转换

将一个string转换成大写或者小写,是项目中经常需要做的事情,但string类里并 没有提供这个方法.自己写个函数来实现,说起来挺简单,但做起来总让人觉得不方便.打个比方:早上起来想吃个汉堡,冰箱里 ...

8. P1018 乘积最大

开始定义状态f[i][j][k]为[i,j)区间插入k个括号,使用记忆化搜索,但是成功爆栈,得到4个mle #include <bits/stdc++.h> using namespace ...

9. Ubuntu下启动Apache的Rewrite功能

在终端中执行 sudo a2enmod rewrite 指令后,即启用了 Mod_rewrite 模块. 另外,也可以通过将 /etc/apache2/mods-available/rewrite.l ...

10. POJ C++程序设计 编程题＃2 编程作业—文件操作与模板

编程题#2: 实数的输出格式 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 1000kB 描述 ...