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> ...
随机推荐
- 对char类型数组的英文字母进行冒泡排序
import java.util.Arrays; import java.util.Scanner; public class Demo02 { public static void main(Str ...
- echart分组柱形图绑定数据
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts </ ...
- IO流的原理和概念
在程序中如何读写文件?不同的编程语言有不同的方式,而 JAVA 则提出了“流”的概念,通过“流”来读写文件 什么是流: 流(Stream)是指一连串的数据(字符或字节),是以先进先出的方式发送信息的通 ...
- html5表单新增元素与属性2
1.标签的control属性 在html5中,可以在标签内部放置一个表单元素,并且通过该标签的control属性来访问该表单元素. <script> function setValue() ...
- 掌握Spark机器学习库-07.6-线性回归实现房价预测
数据集 house.csv 数据概览 代码 package org.apache.spark.examples.examplesforml import org.apache.spark.ml.fea ...
- Objective -C Object initialization 对象初始化
Objective -C Object initialization 对象初始化 1.1 Allocating Objects 分配对象 Allocation is the process by w ...
- git push失败the remote end hung up unexpectedly
Git Push是老是失败,提示: fatal: the remote end hung up unexpectedly git did not exit cleanly (exit code 1) ...
- LOL喷子专用自动骂人工具,2018更新完整版!
软件截图 软件说明: 先进入游戏 打开程序 Z开启/C关闭 下载地址:密码 yjnm
- CentOS7 Install Consul
Centos7 Install Consul 原文链接:http://www.cnblogs.com/caoguo/p/5959962.html 1) 环境 2) 安装 # yum install - ...
- jquery 移动端 六位密码输入
<!DOCTYPE html> <html> <head> <script src="scripts/jquery-1.7.1.min.js&quo ...