CDQZ 数据结构 1004
2015-07-12 19:53
183 查看
#Challenge 4
题意
\(10^5\)的序列,你需要支持以下三种操作1.M pos v 把\(a_pos=v\)
2.A l r
\(\sum_{i \in l\left [l,r \right )}{a_i \cdot a_{i+1}}\)
3.Q l r
\(\sum_{i<j}{a_i \cdot a_{j}}\)
---
Sample Input
5 51 2 3 4 5
Q 1 5
A 1 5
M 2 7
Q 1 5
A 1 5
---
Sample Output
8540
150
60
----
Solutiion
一看就是简单的线段树M 操作线段基础点修改
A 的话维护一个区间相邻积
Q 操作本题的唯一难点: 维护一个区间和,一个区间平方和。我们有
\(2 \cdot \sum_{l\leq i<j\leq r}{a_i \cdot a_{j}}=(\sum_{i=l}^r{a_i})^2 -\sum_{i=l}^r{a_i^2}\)
然而需要注意的是我们不能直接除以2,因为本题是模意义下的.你需要先求一个1000000007对于2的逆元。由Fermat Theory我们有\(2^{1000 000 007-2}\)是逆元
sourcecode
相关文章推荐
- PAT 数据结构 04-树6. Huffman Codes (30)
- PAT 数据结构 04-树5. File Transfer (25)
- 数据结构学习系列之线性表(三)
- 数据结构与算法设计--树的镜像
- PAT 数据结构 04-树4. Root of AVL Tree (25)
- 内部排序——堆排序初探
- 数据结构与算法之二叉搜索树
- 这谈的数据结构和算法2好基友[数据结构和算法]
- 数据结构基础知识
- 数据结构基础温故-4.树与二叉树(上)
- TAIL Queue数据结构
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 数据结构学什么??
- HDU 4871 Shortest-path tree (最短路+树上点分治)
- 基本数据结构之队列
- python数据结构学习笔记(七)
- 【系列文章】数据结构与算法——图
- 基本数据结构之栈
- 数据结构基础 图的遍历(二) 之 BFS
- 三阶行列式求法