hdu1166 敌兵布阵 一维树状数组
来源:互联网 发布:导购源码 编辑:程序博客网 时间:2024/06/10 20:16
Problem:
给了n个数,有三个操作,增加某个值,减少某个值,求某段区间的和。
Solution:
利用线段树或者树状数组都可以,快速求区间和。
notes:
输入输出不加速会超时。
#include<cstdio>#include<iostream>#include<sstream>#include<cstdlib>#include<cmath>#include<cctype>#include<string>#include<cstring>#include<algorithm>#include<stack>#include<queue>#include<set>#include<map>#include<ctime>#include<vector>#include<fstream>#include<list>#include <iomanip>using namespace std;typedef long long ll;typedef unsigned long long ull;#define ms(s) memset(s,0,sizeof(s))const double PI = 3.141592653589;const int INF = 0x3fffffff;long long c[100010];int n;inline int lowbit(int x) { return x & -x;}void update(int idx, int v) { while (idx <= n) { c[idx] += v; idx += lowbit(idx); }}long long query(int x) {// The sum of 1 to x long long ans = 0; while(x > 0) { ans += c[x]; x -= lowbit(x); } return ans;}int main() { // freopen("/Users/really/Documents/code/input","r",stdin); // freopen("/Users/really/Documents/code/output","w",stdout); ios_base::sync_with_stdio(false); cin.tie(0); int t; cin >> t; for(int k = 1; k <= t; k++) { ms(c); cout << "Case " << k << ":\n"; cin >> n; int a; for(int i = 1; i <= n; i++) { cin >> a; update(i, a); } string s; int l, r; while(cin >> s) { if(s == "End") break; else if(s == "Query") { cin >> l >> r; cout << query(r) - query(l-1) << '\n'; } else if(s == "Add") { cin >> l >> r; update(l, r); } else if(s == "Sub") { cin >> l >> r; update(l, -r); } } } return 0;}
阅读全文
0 0
- hdu1166 敌兵布阵 一维树状数组
- hdu1166-敌兵布阵-树状数组
- hdu1166 敌兵布阵 +树状数组
- hdu1166 敌兵布阵 (树状数组)
- hdu1166 敌兵布阵 树状数组
- HDU1166 敌兵布阵 【树状数组】
- hdu1166 敌兵布阵 树状数组
- HDu1166敌兵布阵(树状数组)
- hdu1166 敌兵布阵--树状数组
- HDU1166 敌兵布阵(树状数组)
- HDU1166 敌兵布阵(树状数组)
- hdu1166~敌兵布阵~树状数组求和
- 树状数组hdu1166 敌兵布阵
- HDU1166 敌兵布阵 树状数组水题
- hdu1166敌兵布阵(大意)树状数组
- HDU1166 敌兵布阵(树状数组)
- HDU1166 敌兵布阵(树状数组)
- hdu1166敌兵布阵<树状数组---模板>
- 10.18 PuTTY,Xshell,远程连接LInux系统及密钥认证
- Activity的四大启动方式&&启动Activity引起的内存泄露问题
- JAVA JVM
- 使用iview的一些问题及其解决办法
- 集群单例
- hdu1166 敌兵布阵 一维树状数组
- LuoguP2822[NOIP2016] 组合数问题 解题报告【组合数取模+矩阵前缀和】
- Chris Richardson 微服务系列 第六篇 选择一种微服务部署策略
- OAF中调用并发程序
- 1、Http概述
- Android开发 为应用设置自定义字体
- subsets 1、2,全子集问题
- Java语言基础
- HTML5拖放行为——DataTransfer对象