hdu - 1166 - 敌兵布阵(树状数组)
来源:互联网 发布:mac制作win7u盘启动盘 编辑:程序博客网 时间:2024/04/30 04:22
题意:第一行一个整数T,表示有T组数据。每组数据第一行一个正整数N(N<=50000),表示敌人有N个工兵营地,接下来有N个正整数,第i个正整数ai代表第i个工兵营地里开始时有ai个人(1<=ai<=50)。 接下来每行有一条命令,命令有4种形式:
(1) Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30)(2)Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30);
(3)Query i j ,i和j为正整数,i<=j,表示询问第i到第j个营地的总人数;
(4)End 表示结束,这条命令在每组数据最后出现;
每组数据最多有40000条命令
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166
——>>直接BIT,就像模版题。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 50000 + 10;int a[maxn], lowerbit[maxn], C[maxn], N;int sum(int x) //BIT前x项和{ int ret = 0; while(x > 0) { ret += C[x]; x -= lowerbit[x]; } return ret;}void add(int x, int d) //BIT修改——加{ while(x <= N) { C[x] += d; x += lowerbit[x]; }}void sub(int x, int d) //BIT修改——减{ while(x <= N) { C[x] -= d; x += lowerbit[x]; }}int main(){ int T, cnt = 1, i, j; for(i = 0; i < maxn; i++) lowerbit[i] = i&(-i); scanf("%d", &T); while(T--) { memset(C, 0, sizeof(C)); scanf("\n%d\n", &N); for(i = 1; i <= N; i++) { scanf("%d", &a[i]); add(i, a[i]); } char s[7]; printf("Case %d:\n", cnt++); while(~scanf("%s", s)) { if(strcmp(s, "End") == 0) break; scanf("%d%d", &i, &j); if(strcmp(s, "Query") == 0) printf("%d\n", sum(j) - sum(i-1)); else if(strcmp(s, "Add") == 0) add(i, j); else sub(i, j); } } return 0;}
- hdu - 1166 - 敌兵布阵(树状数组)
- hdu 1166 敌兵布阵 (树状数组)
- HDU 1166 - 敌兵布阵(树状数组)
- hdu 1166 敌兵布阵 ( 树状数组 )
- HDU 1166 敌兵布阵(树状数组)
- hdu-1166敌兵布阵(树状数组)
- HDU 1166 敌兵布阵 (树状数组)
- hdu-1166 敌兵布阵(树状数组)
- hdu 1166 敌兵布阵(树状数组)
- hdu 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵 (树状数组)
- HDU 1166 敌兵布阵(树状数组)
- hdu 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵(树状数组)
- HDU 1166 敌兵布阵(树状数组)
- 树状数组 hdu 1166(敌兵布阵)
- [Linker Fatal error] Unable to open file 'EDISASM.OBJ'
- IIS日志分析说明
- pmon 的 printf 初始化及调用流分析
- 变量,函数与代码的设计方式(1)
- mysql数据库安装图解
- hdu - 1166 - 敌兵布阵(树状数组)
- 你若要彩虹,就得宽容细雨
- [PHP]如何在百度(BAE)和新浪(SAE)的云平台使用PHP连接MySQL并返回结果数据
- java.util.ConcurrentModificationException
- win7下安装jekyll——在github上创建自己的博客
- 房价太高租房更划算 看看他们的幸福租房生活
- 线程死锁
- 如何查看数据库的定序
- 电子书下载:SQL必知必会(第3版)