HDU 1166 敌兵布阵
来源:互联网 发布:网络杀手是什么意思啊 编辑:程序博客网 时间:2024/06/01 20:45
线段树模板题。。
#include<cstdio>#include<iostream>using namespace std;const int maxn=50010;int a[maxn];char test[20];struct xianduanshu{ //int lazy; //int left; //int right; int me;}tree[maxn*4];void build(int node,int left,int right){ int mid=(left+right)/2; //tree[node].left=left; //tree[node].right=right; //tree[node].lazy=0; if(left==right) { tree[node].me=a[mid]; return ; } build(node*2,left,mid); build(node*2+1,mid+1,right); tree[node].me=tree[node*2].me+tree[node*2+1].me;}/*void myson(int node){ tree[node*2].me+=tree[node].lazy*(tree[node*2].right-tree[node*2].left+1); tree[node*2+1].me+=tree[node].lazy*(tree[node*2+1].right-tree[node*2+1].left+1); tree[node*2].lazy+=tree[node].lazy; tree[node*2+1].lazy+=tree[node].lazy; tree[node].lazy=0;}*/int query(int node,int left,int right,int x,int y){ int mid=(left+right)/2; //if(tree[node].lazy) //{ // myson(node); //} if(x<=left&&right<=y) { return tree[node].me; } else { if(y<left||x>right) { return 0; } else if(y<=mid) { return query(node*2,left,mid,x,y); } else if(x>mid) { return query(node*2+1,mid+1,right,x,y); } else { return query(node*2,left,mid,x,y)+query(node*2+1,mid+1,right,x,y); } }}void Add(int node,int left,int right,int x,int num){ int mid=(left+right)/2; tree[node].me+=num; if(x==left&&right==x) { return ; } else { //if(y<left||x>right) //{ // return ; //} if(x<=mid) { Add(node*2,left,mid,x,num); } else if(x>mid) { Add(node*2+1,mid+1,right,x,num); } //else //{ // Add(node*2,left,mid,x,num); // Add(node*2+1,mid+1,right,x,num); //} }}int main(){ int T; scanf("%d",&T); for(int ii=1;ii<=T;ii++) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } build(1,1,n); printf("Case %d:\n",ii); while(scanf("%s",test)==1) { int x,y,num; if(test[0]=='Q') { scanf("%d%d",&x,&y); if(x>y) swap(x,y); printf("%d\n",query(1,1,n,x,y)); } else if(test[0]=='A') { scanf("%d%d%d",&x,&num); Add(1,1,n,x,num); } else if(test[0]=='S') { scanf("%d%d%d",&x,&num); Add(1,1,n,x,-num); } else { break; } } } return 0;}
0 0
- HDU 1166 敌兵布阵
- HDU 1166 敌兵布阵
- hdu 1166 敌兵布阵
- hdu 1166 敌兵布阵
- HDU 1166 敌兵布阵
- hdu 1166 敌兵布阵
- hdu 1166 敌兵布阵
- hdu 1166敌兵布阵
- hdu 1166 敌兵布阵
- hdu 1166 敌兵布阵
- HDU 1166 敌兵布阵
- hdu 1166 敌兵布阵
- hdu 1166 敌兵布阵
- HDU 1166 敌兵布阵
- HDU 1166 - 敌兵布阵
- hdu 1166 敌兵布阵
- hdu 1166 敌兵布阵
- hdu 1166 敌兵布阵
- 新版博客操作说明
- redis学习笔记(8)---微线图sparkline
- Nested Dolls (单调递增子序列 + 二分)
- 八皇后问题
- IOS 单例模式的写法
- HDU 1166 敌兵布阵
- ps在psd格式图片里面切图流程
- listview使用ArrayAdapter显示文字
- mssql数据库导出表明字段名和说明到Excel
- C#之委托学习三
- Java 之 Annotation
- Android购物车全选功能实现·
- XML解析的三种方式
- opencv学习---运动目标(前景)检测