题意:
四个集合,要求每个集合中选出一个数字,四个数字相加为0,问四个数字相加为零的次数有几次
分析:
先把A+B的和存到sum数组里,然后再从中找-(c+b)出现的个数。求长度为n的有序数组a中的数k的个数num:num=upper_bound(a,a+n,k)-lower_bound(a,a+n,k);
代码:
#include#include #include #include using namespace std; const int maxn=4005; int T,n; int A[maxn],B[maxn],C[maxn],D[maxn],sum[maxn*maxn]; int main() { scanf("%d",&T); while(T--) { scanf("%d",&n); int i,j; for(i=0;i