[HDU 5086] Revenge of Segment Tree (前缀和)
来源:互联网 发布:彩虹代刷网源码 编辑:程序博客网 时间:2024/05/15 02:21
链接
HDU 5086
题意
给出一段序列,求所有连续区间和。
题解
求两次前缀和sum[], sum2[],答案就是total[sum[i]*i - sum2[i-1]]。
代码
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>using namespace std;typedef long long lint;const lint mod = 1000000007;#define maxn (447777)int a[maxn];lint sum[maxn], sum2[maxn];int main(){ int T; cin >> T; while(T--) { int N; cin >> N; for(int i = 0; i <= N; i++) sum[i] = sum2[i] = d[i] = 0; for(int i = 1; i <= N; i++) scanf("%d", &a[i]); sum[1] = a[1]; for(int i = 2; i <= N; i++) { sum[i] += a[i] + sum[i-1]; sum[i] %= mod; } sum2[1] = sum[1]; for(int i = 2; i <= N; i++) { sum2[i] += sum[i] + sum2[i-1]; sum2[i] %= mod; } lint o = a[1]; for(int i = 2; i <= N; i++) { o += ((sum[i] * i) % mod + mod - sum2[i-1]) % mod; o %= mod; } cout << o << endl; } return 0;}
0 0
- [HDU 5086] Revenge of Segment Tree (前缀和)
- Revenge of Segment Tree (hdu 5086)
- hdu 5086 Revenge of Segment Tree
- HDU 5086 Revenge of Segment Tree
- hdu 5086 Revenge of Segment Tree(水题)
- HDU 5086 Revenge of Segment Tree
- HDU-5086-Revenge of Segment Tree (BestCoder Round #16)
- hdu 5086 Revenge of Segment Tree(思路)
- [ACM] HDU 5086 Revenge of Segment Tree(所有连续区间的和)
- hdu 5086 Revenge of Segment Tree(BestCoder Round #16)
- hdu 5086 Revenge of Segment Tree(BestCoder Round #16)
- HDOJ 5086 Revenge of Segment Tree 水题
- hdu5086——Revenge of Segment Tree
- BestCoder Round #16 Revenge of Segment Tree (树状数组)
- 【BestCoder#16A / HDU5086】Revenge of Segment Tree
- USTH-第三次测试-1004-Revenge of Segment Tree
- BestCoder Round #16 1001 Revenge of Segment Tree 1002 Revenge of LIS II
- 【CUGBACM15级BC第16场 A】Revenge of Segment Tree
- 01背包 第k优解
- 自学-ES6篇-对象的扩展
- JAVA设计模式-命令模式
- 【闭关0】准备开始入门数据挖掘
- Qt控制台中文乱码问题
- [HDU 5086] Revenge of Segment Tree (前缀和)
- mysql 删除重复记录
- LeetCode No.198 House Robber
- 使用C#操作IIS7的辅助类
- HTML URL 编码(学习笔记)
- 二叉树的遍历方式(递归)
- 非降路径+lucas定理
- C++ Primer(第五版)练习3.31
- USART串口发送0X00问题解决