hdu 1166

原创 2015年07月07日 22:11:33

#include <stdio.h>
#include <string.h>
#define maxn 500005
int p[maxn], c[maxn], n;
char ask[15];
int lowbit(int x)
{
	return x & (-x);
}

void update(int x, int num)
{
	while(x <= n)
	{
		c[x] += num;
		x += lowbit(x);
	}
}

int getSum(int x)
{
	int s = 0;
	while(x > 0)
	{
		s += c[x];
		x -= lowbit(x);
	}
	return s;
}
int main()
{
	int t, i, k, x, y;
	scanf("%d", &t);
	k = 1;
	while(t--)
	{
		printf("Case %d:\n", k++);
		scanf("%d", &n);
		memset(c, 0, sizeof(c));
		for(i = 1;i <= n;i++)
		{
			scanf("%d", &p[i]);
			update(i, p[i]);
		}
		
		while(1)
		{
			scanf("%s", ask);
			if(!strcmp(ask, "Add"))
			{
				scanf("%d %d", &x, &y);
				update(x, y);
			}
			else if(!strcmp(ask, "Sub"))
			{
				scanf("%d %d", &x, &y);
				update(x, -y);
			}
			else if(!strcmp(ask, "Query"))
			{
				scanf("%d %d", &x, &y);
				printf("%d\n", getSum(y) - getSum(x - 1));
			}
			else if(!strcmp(ask, "End")) break;
		}
	}
	return 0;
}
 

第一次自己写树状数组


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

hdu 1166线段树

hdu acm1166线段树

HDU 1166 | 敌兵布阵 —— 树状数组

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...

hdu 1166 敌兵布阵(线段树入门)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...

HDU 1166 敌兵布阵

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Problem Description C国的死对头A国这段时间正在进行军事演...

hdu-1166敌兵布阵(线段树 部分数据的更新及求和)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...

HDU1166

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...

hdu1166敌兵布阵(线段树点修改)

#include #include #include #define N 50000+20 using namespace std; int a[N]; struct Nodes { int ...

HDU 1166 敌兵布阵

Description Lily 特别喜欢养花,但是由于她的花特别多,所以照料这些花就变得不太容易。她把她的花依次排成一行,每盆花都有一个美观值。如果Lily把某盆花照料的好的话,这盆花的美...

HDU-1166(线段树入门)

这个是很简单的一道线段树题目,当然肯定没有树状数组来这爽,但是作为练手的题目还是不错的... 分享给大家我的代码..大家看看有什么可取之处的没有 #include #include #incl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)