POJ2785——4 Values whose Sum is 0

题目链接:http://poj.org/problem?id=2785

4 Values whose Sum is 0

题目大意:给你n行4列数,让你在每一列中取一个数,然后相加,问有多少种组合(相加之和为0)?

解题思路:虽然给了15秒,但是直接暴力还是会超时的。接下来讲讲我的做法:首先将前两列任意两项相加得到数组x,再将后两列任意两项相加取反得到数组y,再将y排序,最后依次将x中的元素在y中进行二分查找,看有多少个相等的数加起来即为最终的结果。

#include
#include
#include
using namespace std;

int a[4010][4];
int x[16000001];
int y[16000001];
int ll,ans;

void bit_search(int t)
{
    int mid,l=0,r=ll-1;
    while(l>1;
        if(y[mid]


你可能感兴趣的:(POJ2785——4 Values whose Sum is 0)