博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
美丽度
阅读量:5340 次
发布时间:2019-06-15

本文共 996 字,大约阅读时间需要 3 分钟。

Problem Description
街道上依次坐落着n个景点,每个景点都有一个美丽度a[i]。
定义[l,r]之间景点的美丽度为(r-l+1)*a[l]+(r-l)*a[l+1]+...+2*a[r-1]+1*a[r]
现在我们想要知道对于所有的子区间,景点的美丽度和为多少。
Input
第一行输入一个整数n(1<n<=1000000),
第二行输入n个整数。
0<=ai<=1e9
Output
输出所有区间的美丽度和(由于输出结果太大,答案取模1e9+7)。
Sample Input
3
1 2 3
5
1 2 3 4 5
Sample Output
27
182

思路:

a[i]的贡献很容易算得是a[i] * (n-i) * sum[n-i+1] ,其中sum数组表示数列1,2,3,4....的前缀和。

代码:

#include
using namespace std;#define LL long long#define INF 2000000000LL ans[1000001];const LL mod = 1e9+7;void init(){ ans[0] = 0; for(int i = 1 ; i <= 1000000 ; i++){ ans[i] = (ans[i-1] + i + 0LL)%mod; }}//求前缀和 int main(){ int n; init(); while(~scanf("%d",&n)){ int k = n; LL sum = 0; for(int i = 1 ; i <= n ; i++){ LL x;scanf("%lld",&x); LL cnt = (((x*i)%mod*ans[n-i+1])%mod)%mod; sum = (sum+cnt)%mod; } printf("%lld\n",(sum+mod)%mod); }}/*31 2 351 2 3 4 5*/

 

转载于:https://www.cnblogs.com/Esquecer/p/10692569.html

你可能感兴趣的文章
redis-数据结构以及使用场景分析
查看>>
SDN第二次作业
查看>>
ASP.NET MVC之如何看待内置配置来提高性能优化(四)
查看>>
前端页面
查看>>
2019-06-19 滴滴打车一面
查看>>
SQL SERVER 简体与繁体 定序 轉換
查看>>
软件工程时间进度表
查看>>
2015阿里前端工程师在线笔试整理
查看>>
Something about technical writing and documentation
查看>>
FTP 与 SFTP 与 vsFTP
查看>>
Fortify漏洞之Access Control: Database(数据越权)
查看>>
使用JavaScript 做一些頁面卡控
查看>>
Python学习(十) —— 常用模块
查看>>
Python学习(一) —— 基础
查看>>
Rest中获取制定操作的UriTemplate
查看>>
吴裕雄 python 机器学习——线性判断分析LinearDiscriminantAnalysis
查看>>
吴裕雄 python 机器学习——模型选择回归问题性能度量
查看>>
吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:除了屏幕阅读器外,其他设备上隐藏元素...
查看>>
BackgroundBlur_背景模糊高斯模糊
查看>>
splay模板
查看>>