problema
\ (Se sabe que da una secuencia a de longitud n, cada valor en a es a_i, encuentra la suma de todas las coincidencias por pares (no multiplicada por sí misma) \)
solución
\ (1) Simple para la idea de bucle para realizar emparejamiento por pares \) \ (O (n ^ 2) \)
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
res += a[i]*a[j];
}
}
\ (2) Resolver por suma de prefijo \) \ (O (n) \)
Por ejemplo:
\ (a [1] * a [2] + ... + a [1] * a [n] = a [1] * (a [2] + .. + a [n]); \)
\ (a [2] * a [3] + ... + a [2] * a [n] = a [2] * (a [3] + .. + a [n]); // así fórmula El niño saldrá \)
\ (\ sum_ {i = 1} ^ na [i] * (sum-a [i]); sum 为 \ sum_ {i = 1} ^ na [i] \)
for(int i=1;i<n;i++){
res += a[i]*(sum-a[i]);
}