线段树-HDU 1166 敌兵布阵
来源:互联网 发布:ubuntu vim设置 编辑:程序博客网 时间:2024/06/05 07:40
一道线段树的基础入门题,这题得到一个教训···· 字符串千万别cin输入 毁一生啊····
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include <algorithm>#define max(x,y) ((x)>(y)?(x):(y))#define min(x,y) ((x)<(y)?(x):(y))#define ll long long#define eps 1e-8#define ms(x,y) (memset(x,y,sizeof(x)))#define fr(i,x,y) for(int i=x;i<=y;i++)#define lowbit(x) (x&(-x))using namespace std;const int maxn=5e4+10;int n,a[maxn],c[maxn];void init(){ cin>>n; ms(a,0); fr(i,1,n) scanf("%d",&a[i]); fr(i,1,n) { c[i]=0; int l=lowbit(i); for(int j=i-l+1;j<=i;j++) { c[i]+=a[j]; } }}int sum(int x){ int ret=0; while(x>0) { ret+=c[x]; x-=lowbit(x); } return ret;}void add(int x,int d){ //cout<<x<<' '<<d<<endl; while(x<=n) { //cout<<"Add"<<d<<endl; c[x]+=d; x+=lowbit(x); }}int query(int x,int y){ return sum(y)-sum(x-1);}void sub(int x,int d){ return add(x,-d);}int k=1;void doit(){ char op[10]; printf("Case %d:\n",k++); getchar(); while(scanf("%s",op),strcmp(op,"End")) { //cout<<1<<endl; //fr(i,1,n)cout<<c[i]<<' ';cout<<endl; if(!strcmp(op,"Query")) { int x,y; scanf("%d%d",&x,&y); printf("%d\n",query(x,y)); } if(!strcmp(op,"Add")) { //cout<<"add"; int x,d; scanf("%d%d",&x,&d); add(x,d); } if(!strcmp(op,"Sub")) { int x,d; scanf("%d%d",&x,&d); sub(x,d); } //getchar(); }}int main(){ //freopen("in.txt","r",stdin); int T; cin>>T; while(T--) { init(); doit(); } return 0;}
0 0
- HDU 1166敌兵布阵 线段树
- HDU 1166 敌兵布阵(线段树)
- 敌兵布阵 1166 HDU 线段树
- hdu 1166 敌兵布阵--线段树
- HDU 1166 敌兵布阵 线段树
- 敌兵布阵 1166 HDU 线段树
- HDU-1166-敌兵布阵(线段树)
- hdu 1166 敌兵布阵(线段树)
- hdu 1166 敌兵布阵 朴素线段树
- hdu 1166 敌兵布阵 (线段树初步)
- 线段树专题:hdu 1166敌兵布阵
- HDU 1166 敌兵布阵(线段树)
- HDU 1166敌兵布阵(线段树)
- HDU 1166 敌兵布阵 (线段树)
- 【线段树】hdu 1166 敌兵布阵
- HDU-1166 敌兵布阵 线段树
- hdu 1166 敌兵布阵 线段树
- hdu 1166 敌兵布阵(线段树)
- Java IoC
- Android Camera FW到Camera Hal调用流程
- Java使用字符流拷贝文件出现乱码
- 解决ScrollView下嵌套ListView、GridView显示不全的问题
- java泛型
- 线段树-HDU 1166 敌兵布阵
- Struts2中的Result基本用法
- linux内核模块编译
- 编译OK6410-A 的qt-everywhere-opensource-src-4.7.1出错 解决办法
- android开发--001
- (六)-UITableView几个方法的使用说明
- 动态规划之矩阵连乘问题
- linux vim 配置文件.vimrc
- github简单使用教程