SDUT3371 解题报告
来源:互联网 发布:杜蕾斯震动棒 知乎 编辑:程序博客网 时间:2024/05/29 11:28
//属于区间树一类的思路:O(NlgN)//change[i]代表区间1-i之间数据的变化结果。//sum[i]代表区间1-i间原始数据的和,计算l到r的和时用sum[r]-sum[l-1]即可。//由于大量的修改和访问,所以要把数据组织好,使用二叉树,每次修改二分着去刷新可以影响到的区间上的值。//访问时再类似方法把所有能影响到该位置的区间的变化值组合起来即可。//需要注意的点://1.数据会很大,那个地方忘了用longlong会导致WA。//2.使用cin,cout会在io上消耗太多时间导致TLE。//3.多组数据,所以while(scanf("%d",&n)!=EOF)。//4.数组只有一个元素的情况。#include <iostream>#include <map>#include <cstdio>using namespace std;const int N = 100001;unsigned long long sum[N];unsigned long long change[N];void update(int p, unsigned long long v, int l, int r){if (l >= r){if (l == r && p == r) change[p] += v;return;}int m = (l + r) / 2;if (p == m){change[m] += v;return;}if (p < m){change[m] += v;update(p, v, l, m);}else{update(p, v, m + 1, r);}}unsigned long long query(int p, int l, int r, unsigned long long result){if (l >= r){if (l == r && p == r) result += change[p];return result + sum[p];}int m = (l + r) / 2;if (p == m){return result + change[p] + sum[p];}if (p < m){query(p, l, m, result);}else{result += change[m];query(p, m + 1, r, result);}}int main(){int n;unsigned long long num;while (scanf("%d", &n) != EOF){sum[0] = 0;change[0] = 0;for (int i = 1; i <= n; i++){scanf("%lld", &num);sum[i] = sum[i - 1] + num;change[i] = 0;}int q;cin >> q;while (q--){int op;scanf("%d", &op);if (op == 1){int p;unsigned long long v;scanf("%d %lld", &p, &v);update(p, v, 1, n);}else{int l, r;scanf("%d %d", &l, &r);printf("%lld\n", query(r, 1, n, 0) - query(l - 1, 1, n, 0));}}}return 0;}
0 0
- SDUT3371 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- tju解题报告
- zju1062/pku1095解题报告
- UsacoGate解题报告 --- 序曲
- ZJU 2060 解题报告
- ZJU 1331 解题报告
- ZJU 1115 解题报告
- ZJU1057解题报告
- web编程从入门到项目实战-Package.json篇
- testng.xml文件结构组成及节点属性说明
- Android有序广播(系统有序广播SMS)
- linux设备驱动归纳总结(十三):1.触摸屏与ADC时钟
- JavaEE struts2 Action的结果配置
- SDUT3371 解题报告
- CGLIB学习笔记
- SpringMVC浅谈
- POI导出Excel笔记
- svn的多项目并行源码管理与自动发布思考
- java获取kafka中的消息数据
- Redis 管道pipeline
- Mina学习笔记(2) HelloWorld(TCP/IP)
- echart3.0 节点关系图,自定义提示。边上属性不显示的问题。