【2020.10.28SSL普及模拟赛T3】【区间和的和】【数学】

在这里插入图片描述
在这里插入图片描述

分析

首先想到的就是暴力枚举每一个区间,求和之后存在数组里然后再求和。
但是稳T
所以反过来想每一个数对多少个区间产生了贡献。
在这里插入图片描述
所以a[i]的出现次数为 i ∗ ( n − i + 1 ) i*(n-i+1) i(ni+1)

上代码

#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;
} 

猜你喜欢

转载自blog.csdn.net/dglyr/article/details/109350747