博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu1166(单点更新,区间求和)
阅读量:7231 次
发布时间:2019-06-29

本文共 1205 字,大约阅读时间需要 4 分钟。

代码:

#include
using namespace std;int n,a[50005],c[50005];int lowbit(int x){ return x&(-x);}int sum(int x){ int sum=0; while(x>0) { sum+=c[x]; x=x-lowbit(x); } return sum;}void inster(int i,int j){ while(i<=n) { c[i]+=j; i=i+lowbit(i); }}int main(){ char s[10]; int i,j,t,k,f=0; scanf("%d",&t); while(t--) { memset(c,0,sizeof(c)); scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); getchar(); for(i=1;i<=n;i++) { j=lowbit(i); for(k=i-j+1;k<=i;k++) c[i]+=a[k]; } printf("Case %d:\n",++f); while(1) { scanf("%s",s); if(s[0]=='E') break; scanf("%d %d",&i,&j); getchar(); if(s[0]=='A') inster(i,j); else if(s[0]=='S') inster(i,-j); else if(s[0]=='Q') { if(i==1) printf("%d\n",sum(j)); else printf("%d\n",sum(j)-sum(i-1)); } } } return 0;}

 

转载地址:http://hmsfm.baihongyu.com/

你可能感兴趣的文章
五大角色和主域控制器
查看>>
QTcpserver编程
查看>>
ScrollView + Listview 实现方案优选
查看>>
redis概述与使用
查看>>
linux下如何设置和查看系统环境变量
查看>>
jaxws-webservice编程
查看>>
网众安装U盘带WINPE和MaxDOS
查看>>
Linux man文档英语单词
查看>>
oracle的权限和角色区别
查看>>
组策略管理——软件限制策略(4)
查看>>
tcp的三次握手
查看>>
u盘中的ubuntu为了减少日志系统频繁写文件所修改的/etc/fstab
查看>>
RAID浅谈
查看>>
Map接口
查看>>
IntelliJ IDEA 使用教程
查看>>
『高级篇』docker之服务发现、部署更新和扩容(七)
查看>>
『高级篇』docker之了解CICD和DevOps(41)
查看>>
shell内置命令和外部命令区别
查看>>
AD域管理浅谈
查看>>
包含目录、库目录、附加包含目录、附加库目录、附加依赖项
查看>>