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;
}
 

第一次自己写树状数组


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

HDU1166:敌兵布阵

Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任...
  • libin56842
  • libin56842
  • 2013年01月22日 15:12
  • 10365

HDU-1166 敌兵布阵(线段树模板题)

N - 敌兵布阵 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta...
  • haut_ykc
  • haut_ykc
  • 2016年07月21日 21:22
  • 429

HDU1166:敌兵布阵(线段树单点更新)

Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的...
  • libin56842
  • libin56842
  • 2013年10月22日 15:08
  • 4519

hihoCoder 1166 交换代数 (高斯消元,概率)

题意: 给出区间[1,n]的状态,有0、1.现在每次可以选择任意区间取翻转,问全部翻转成0的次数期望。总共有n(n+1)/2个区间。 题解: 这个CLJ链接将的很清楚了。 那么根据高斯消元列方...
  • My_ACM_Dream
  • My_ACM_Dream
  • 2015年05月19日 23:49
  • 674

南邮 OJ 1166 数字实力

数字实力 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte 总提交 : 380            测试通过 : ...
  • changshu1
  • changshu1
  • 2015年08月05日 10:21
  • 221

杭电 hdu 1166 敌兵布阵【树状数组过】

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub...
  • mengxiang000000
  • mengxiang000000
  • 2016年01月21日 18:27
  • 551

HDU 1166 敌兵布阵

题目大意:中文
  • u013569656
  • u013569656
  • 2014年07月16日 20:18
  • 320

HDU - 1166 敌兵布阵

敌兵布阵 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u ...
  • qq_18738333
  • qq_18738333
  • 2015年03月29日 02:01
  • 296

HDU 1166 敌兵布阵

线段树水题,练习一下线段树的写法 虽然我的写法和网上大多数的写法不同,但感觉我这种写法更好理解,写起来也更简便 单点更新 #include #define N 50005 struct Nod...
  • lj94093
  • lj94093
  • 2015年05月15日 17:42
  • 555

hdu 1166 线段树

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub...
  • naipp
  • naipp
  • 2016年06月19日 22:58
  • 187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu 1166
举报原因:
原因补充:

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