1.0 秒
131,072.0 kb
20 分
3級題給出n個整數,你來判斷一下是否能夠選出4個數,他們的和為0,可以則輸出"yes",否則輸出"no"。
收起
第1行,1個數n,n為陣列的長度(4 <= n <= 1000)第2 - n + 1行:a[i](-10^9 <= a[i] <= 10^9)
如果可以選出4個數,使得他們的和為0,則輸出"yes",否則輸出"no"。
5-11-524
yes
排序+二分,兩兩合併,二分查詢,注意記錄一下下標,因為要求記錄不同的數。
#include using namespace std;
typedef long long ll;
const int n=1e5+5;
int n;
struct node
;vectorv;
bool cmp(node a,node b)
if(v[i].sum+v[mid].sum>=0)
return 2;
return 0;
}int main()
for(int i=1; i>1;
if(check(i,mid))
r=mid;
else
l=mid+1;
}if(check(i,l)==1)
}printf("no\n");
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...