hdu 1166 树状数组模板题
#include<stdio.h>
#include<string.h>
#define N 51000
int c[N],n;
int number(int x) {
return x&-x;
}
void creat(int a,int x) {
int i;
for(i=a;i<=n;i+=number(i))
c[i]+=x;
}
int sum(int x) {
int h=0,i;
for(i=x;i>0;i-=number(i))
h+=c[i];
return h;
}
int bsum(int x,int y) {
return sum(y)-sum(x);
}
int main() {
int i,j,t,k,count=0;
char s[30];
scanf("%d",&t);
while(t--) {
scanf("%d",&n);
memset(c,0,sizeof(c));
for(i=1;i<=n;i++) {
scanf("%d",&k);
creat(i,k);
}
printf("Case %d:\n",++count);
while(scanf("%s",s),strcmp(s,"End")) {
if(s[0]=='Q') {
scanf("%d%d",&i,&j);
printf("%d\n",bsum(i-1,j));
}
else
if(s[0]=='A'){
scanf("%d%d",&i,&k);
creat(i,k);
}
else
if(s[0]=='S'){
scanf("%d%d",&i,&k);
creat(i,-k);
}
}
}
return 0;
}
hdu 1166 树状数组模板题的更多相关文章
- HDU - 1166 树状数组模板(线段树也写了一遍)
题意: 汉语题就不说题意了,用到单点修改和区间查询(树状数组和线段树都可以) 思路: 树状数组的单点查询,单点修改和区间查询. 树状数组是巧妙运用二进制的规律建树,建树就相当于单点修改.这里面用到一个 ...
- HDU 1166 敌兵布阵(线段树/树状数组模板题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 敌兵布阵 HDU - 1166 (树状数组模板题,线段树模板题)
思路:就是树状数组的模板题,利用的就是单点更新和区间求和是树状数组的强项时间复杂度为m*log(n) 没想到自己以前把这道题当线段树的单点更新刷了. 树状数组: #include<iostrea ...
- hdu 1166 树状数组(线段树)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- hdu 1166(树状数组 或 线段树)
线段树 (本题无需建树,少了很多) #include<cstdio> #include<cstring> int sum[5000005],rt,data,lb,rb,n,m; ...
- POJ 3928 Ping pong 树状数组模板题
開始用瓜神说的方法撸了一发线段树.早上没事闲的看了一下树状数组的方法,于是又写了一发树状数组 树状数组: #include <cstdio> #include <cstring> ...
- HDU 4638 树状数组 想法题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4638 解题思路: 题意为询问一段区间里的数能组成多少段连续的数.先考虑从左往右一个数一个数添加,考虑当 ...
- hiho 172周 - 二维树状数组模板题
题目链接 描述 You are given an N × N matrix. At the beginning every element is 0. Write a program supporti ...
- hdu 1166 树状数组 线段树入门
点修改 区间求和 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> ...
随机推荐
- this关键字的构造方法的使用
package com.wh.Object3; public class this_Demo { private String name; private double price; private ...
- Oracle代码 规则 创建表 表空间 用户等
-----创建表空间----------create tablespace bdccslogging datafile 'D:\oracle\product\10.2.0\oradata\bdccs\ ...
- 451 Sort Characters By Frequency 根据字符出现频率排序
给定一个字符串,请将字符串里的字符按照出现的频率降序排列.示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次.因此' ...
- 移动端如何定义字体font-family
移动端如何定义字体font-family 中文字体使用系统默认即可,英文用Helvetica /* 移动端定义字体的代码 */ body{font-family:Helvetica;} 参考<移 ...
- 解决 图片在div中等比例缩放问题 (未解决:图片比例小于盒子模型时不会自动填充)
如题,该方案仅支持对图片等比例缩放.本文附件地址:https://files.cnblogs.com/files/john69-/background-Img.rar <!DOCTYPE htm ...
- python 使用 Pyscript 调试 报错
UnicodeEncodeError: 'ascii' codec can't encode characters in position 13-16: ordinal not in range(12 ...
- volley的框架安装与使用
最后一步非常重要 不然会报错: publish = project.has("release") 替换为: publish = project.hasProperty(&q ...
- Dragger2解析(一)
依赖注入(DI-Dependency Injection) 什么是依赖注入 这是一种设计思想,一个面向对象的编程法则. DI能够让开发者写出低耦合代码,更加优良的程序. 更容易测试,代码健壮性更强. ...
- crontab安装及使用
linux下crontab安装yum -y install crontabs service crond start //启动服务service crond stop //关闭服务s ...
- 【译】x86程序员手册32-9.4 中断描述符表
9.4 Interrupt Descriptor Table 中断描述符表 The interrupt descriptor table (IDT) associates each interrupt ...