[2020.10.28 Torneo de simulación de popularización SSL T3] [Suma de la suma del intervalo] [Matemáticas]

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

análisis

Lo primero que me viene a la mente es enumerar cada intervalo de forma violenta y almacenarlo en la matriz después de sumar la suma.
Pero para estabilizar T,
a su vez, piense en cuántos intervalos contribuye cada número.
Inserte la descripción de la imagen aquí
Entonces, el número de apariciones de a [i] es i ∗ (n - i + 1) i * (n-i + 1)yo( n-yo+1 )

Subir código

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

typedef long long ll;

ll n,a,ans;

int main()
{
    
    
	cin>>n;
	for(int i=1;i<=n;i++)
	{
    
    
		cin>>a;
		ans=(ans+a*i*(n-i+1))%1000000007;
	}
	cout<<ans;
	return 0;
} 

Supongo que te gusta

Origin blog.csdn.net/dglyr/article/details/109350747
Recomendado
Clasificación