线段树 敌兵布阵
来源:互联网 发布:无法访问网络共享 编辑:程序博客网 时间:2024/05/07 11:40
题目链接
#include <stdio.h>#include <string.h>#define MAX 50005char str[6];typedef struct _node{ int left; int right; int count;}node;node no[MAX*3];int num[MAX], value, a, res;int n;//建树void insert(int l, int r, int i){ no[i].left = l, no[i].right = r; if(l == r){ no[i].count = num[l]; return ; } int mid = (l+r)/2; insert(l, mid, i*2); insert(mid+1, r, i*2+1); no[i].count = no[i*2].count + no[i*2+1].count;}//按要求修改树void modify(int l, int r, int i){ if(no[i].left == no[i].right){ no[i].count+=value; return; } int mid = (no[i].left+no[i].right)/2; if(a <= mid){ modify(l, r, i*2); } else { modify(l, r, i*2+1); } no[i].count = no[i*2].count+no[i*2+1].count;}//查询void query(int start, int end, int i){ if(start==no[i].left&&end==no[i].right){ res += no[i].count; return ; } int mid = (no[i].left+no[i].right)/2; if(end <= mid){ query(start, end, i*2); } else if(start > mid){ query(start, end, i*2+1); } else{ query(start, mid, i*2); query(mid+1, end, i*2+1); }}int main(){// freopen("input.txt","r", stdin); int t,i,j; scanf("%d", &t); for(i = 1; i <= t; i ++){ printf("Case %d:\n", i); scanf("%d", &n);// scanf("%*c"); for(j = 1; j <= n; j ++){ scanf("%d", &num[j]); } insert(1, n, 1); while(scanf("%s",str)&&strcmp(str, "End")!=0){ scanf("%d%d", &a, &value);// scanf("%*c"); if(strcmp(str, "Add")==0){ modify(1, n, 1); } else if(strcmp(str, "Sub")==0){ value=-value; modify(1, n, 1); } else{ res = 0; query(a, value, 1); printf("%d\n", res); } } } return 0;}
0 0
- 线段树:敌兵布阵
- 敌兵布阵(线段树)
- 线段树 敌兵布阵
- 【线段树】敌兵布阵
- 线段树 敌兵布阵
- 敌兵布阵(线段树)
- 敌兵布阵 线段树
- 敌兵布阵(线段树)
- 敌兵布阵-线段树
- 线段树 hdu1166 (敌兵布阵)
- 【线段树】 hdu1166 敌兵布阵
- hdu1166 敌兵布阵 线段树
- hdu1166敌兵布阵 (线段树)
- hdu1166 敌兵布阵,线段树
- HDU1166 敌兵布阵(线段树)
- HDOJ1166 敌兵布阵 【线段树】
- [线段树] 1127 敌兵布阵
- hdu1166 敌兵布阵 线段树
- 黑马程序员——Object-C基础(二)什么是面向对象?
- Android圆形的Imageview
- 操作系统 IPC
- POJ 2063 Investment(完全背包问题)
- 微信开发小工具
- 线段树 敌兵布阵
- android生成带logo的二维码
- C语言 include <> ""
- 关于mybatis集成spring时,dataSource设置propertyPlaceholder的问题
- oracle常见sql语句优化
- Python函数的定义和调用
- MySQL 5.1新特性之事件调度器(Event Scheduler)
- js 。jquery 的配合获取相同id的元素
- 在跳转后的页面中判断当前页面是从哪个页面跳转而来的