51nod 1267 4個數和為0 雜湊

2021-07-05 02:56:35 字數 957 閱讀 9052

1267 4個數和為0

基準時間限制:1 秒 空間限制:131072 kb 分值: 20 

難度:3級演算法題

給出n個整數,你來判斷一下是否能夠選出4個數,他們的和為0,可以則輸出"yes",否則輸出"no"。

input

第1行,1個數n,n為陣列的長度(4 <= n <= 1000)

第2 - n + 1行:a[i](-10^9 <= a[i] <= 10^9)

output

如果可以選出4個數,使得他們的和為0,則輸出"yes",否則輸出"no"。
input示例

5-11

-524

output示例

yes
題目給的標籤是二分,然而我自己當時還不懂二分。。。想起poj上有一道是解5元方程的一道題,將暴力的o(n^5)方法用雜湊降到了o(n^3),於是就用雜湊方法過了,但是真沒想到51nod居然沒有卡這麼幼稚的雜湊。。。

**:

#include #include #include #include #include #include #include #pragma warning(disable:4996)

using namespace std;

int n,i, j, num, m, z,x2,y2;

long long val[1005];

mapdic;

vectorx[500005];

vectory[500005];

int main()

num = 0;

for (i = 1; i <= n; i++) }

for (i = 1; i < n; i++)}}

} }cout << "no" << endl;

return 0;

}

51nod 1267 4個數和為0

思路 先n 2預處理出所有兩兩的組合,那麼就變成要找a b 0的問題了,那麼排序o n 去找就可以了 includeusing namespace std define ll long long const int maxn 1005 1005 struct node node maxn bool ...

51nod1267 4個數和為0

1267 4個數和為0 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給出n個整數,你來判斷一下是否能夠選出4個數,他們的和為0,可以則輸出 yes 否則輸出 no input 第1行,1個數n,n為陣列的長度 4 n 1000 第2 n 1行 a i 10 9...

51 nod 1267 4個數和為0

給出n個整數,你來判斷一下是否能夠選出4個數,他們的和為0,可以則輸出 yes 否則輸出 no input 第1行,1個數n,n為陣列的長度 4 n 1000 第2 n 1行 a i 10 9 a i 10 9 output 如果可以選出4個數,使得他們的和為0,則輸出 yes 否則輸出 no sa...