`
jishublog
  • 浏览: 868928 次
文章分类
社区版块
存档分类
最新评论

树状数组 二维空间

 
阅读更多
//hdu1166 二维树状数组
#include <iostream>
using namespace std;
int n;
//int a[1025][1025];
int c[1025][1025];
int lowbit(int x)
{
	return x&(-x);
}

void insert(int x,int y,int value)
{
	while(y<=n)
	{
		int i=x;
		while(i<=n)
		{
			c[i][y]+=value;
			i+=lowbit(i);
		}
		y+=lowbit(y);
	}
}

int getsum(int x,int y){
	if(x<=0||y<=0)
		return 0;
	int i=0,j=y;
	while(x>0)
	{
		y=j;
		while(y>0)
		{
			i+=c[x][y];
			y-=lowbit(y);
		}
		x-=lowbit(x);
	}
	return i;
}
int main()
{
	int f,x,y,x1,y1,x2,y2,value;
	while(scanf("%d",&f))
	{
		if(f==0)
		{
			//memset(a,0,sizeof(a));
			memset(c,0,sizeof(c));
			scanf("%d",&n);
		}
		if(f==1)
		{
			scanf("%d%d%d",&x,&y,&value);
			insert(x+1,y+1,value);
		}
		if(f==2)
		{
			scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
			int sum=getsum(x2+1,y2+1)+getsum(x1,y1)-getsum(x2+1,y1)-getsum(x1,y2+1);
			printf("%d\n",sum);
		}
		if(f==3)
			break;
	}
	return 0;
}

分享到:
评论

相关推荐

    计算机二级公共基础知识

    例如,在一维数组[21,46,24,99,57,77,86]中,查找数据元素99,首先从第1个元素21开始进行比较,比较结果与要查找的数据不相等,接着与第2个元素46进行比较,以此类推,当进行到与第4个元素比较时,它们相等,...

    ACM巨全模板 .pdf

    11.求k维空间中离所给点最近的m个点,并按顺序输出(KD树) 12.LCA (两个节点的公共父节点) 动态规划: 1.LIS (最长上升子序列) 2.有依赖的背包 (附属关系) 3.最长公共子序列(LCS) 4.树形DP 5.状压DP-斯坦纳树 6.背包 7...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    7.2 二维数组的定义和引用 86 7.2.1 二维数组的定义 86 7.2.2 二维数组元素的引用 86 7.2.3 二维数组的初始化 87 7.2.4 二维数组程序举例 89 7.3 字符数组 89 7.3.1 字符数组的定义 89 7.3.2 字符数组的初始化 89 ...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    7.2 二维数组的定义和引用 86 7.2.1 二维数组的定义 86 7.2.2 二维数组元素的引用 86 7.2.3 二维数组的初始化 87 7.2.4 二维数组程序举例 89 7.3 字符数组 89 7.3.1 字符数组的定义 89 7.3.2 字符数组的初始化 89 ...

    java算法与数据结构

    (6)二维数组的地址计算 (7)稀疏矩阵的概念及存储结构 (8)线性表的排序(插入、选择和交换) (9)线性表的查找(顺序、折半和分块) 3.树形结构 (1)二叉树的性质及存储结构 (2)二叉树的遍历 (3)线索...

    matlab函数大全-matlab函数大全.doc

    barh 二维水平直方图 base2dec X进制转换为十进制 bin2dec 二进制转换为十进制 blanks 创建空格串 bone 蓝色调黑白色图阵 box 框状坐标轴 break while 或for 环中断指令 brighten 亮度控制 C c ...

    数据结构(C++)有关练习题

    设计一个构造函数,当对象结束时,要释放整个二叉搜索树所占的内存空间(提示,通过后序遍历算法找到叶结点,并删除叶结点,不断重复此过程,直到整科树为空); 2、实现1所要求的代码后,运行设计好的代码,将...

    C程序范例宝典(基础代码详解)

    实例031 二维数组行列互换 37 实例032 使用数组统计学生成绩 39 实例033 打印5阶幻方 40 1.6 字符和字符串操作 41 实例034 统计各种字符个数 41 实例035 字符串倒置 43 实例036 字符串替换 44 实例037...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例043 将二维数组中的行列互换 53 实例044 利用数组随机抽取幸运观众 54 实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例...

    IOI国家集训队论文集1999-2019

    + [树形DP](#树形dp) + [优化](#优化-1) * [计算几何](#计算几何) + [立体几何](#立体几何) + [计算几何思想](#计算几何思想) + [圆](#圆) + [半平面交](#半平面交) * [矩阵](#矩阵) + [矩阵](#矩阵-1) + ...

    C语言通用范例开发金典.part2.rar

    1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 ...

    C 开发金典

    1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 ...

    C语言通用范例开发金典.part1.rar

    1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 ...

    计算机二级C语言考试题预测

    (29) 用树形结构来表示实体之间联系的模型称为(B) A. 关系模型 B. 层次模型 C. 网状模型 D. 数据模型 (30) 关系数据库管理系统能实现的专门关系运算包括(B) A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新...

    《数据结构 1800题》

    【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于(C )【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和 B 3.计算机算法指...

    JAVA上百实例源码以及开源项目

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

Global site tag (gtag.js) - Google Analytics