[2020年10月28日普级组]1403.区间和的和

区 间 和 的 和 区间和的和


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


题目解析

这道题是道数学题,通过找规律可以得出一个式子:

a n s = a n s + a ∗ i ∗ ( n − i + 1 ) ans = ans + a * i * (n - i + 1) %M; ans=ans+ai(ni+1)
具体的推导过程我忘了,罪过😧


Code

#include <cstdio>
#include <iostream>
#define ll long long
using namespace std;

ll n, ans, a;
const ll M = 1e9 + 7; 

int main ()
{
	scanf ("%lld", &n);
	for (ll i = 1; i <= n; ++ i)
	{
		scanf ("%lld", &a);
		ans = ans + a * i * (n - i + 1) % M;
	}
	printf ("%lld", ans % M);
	return 0;	
} 
posted @ 2020-10-30 21:38  unknown_future  阅读(42)  评论(0编辑  收藏  举报