NYOJ116 士兵杀敌
来源:互联网 发布:教育平台软件 编辑:程序博客网 时间:2024/06/05 18:51
题目大意:
传送门:点我传送
我的理解:
使用树状数组求解;
我的代码:
#include<cstdio>#include<iostream>#include<algorithm>#define MAX_N 1000005using namespace std;int a[MAX_N];int n;int lowbit(int x){ return x&(-x);}void begin(){ int t,i,j; for(i=n;i>=1;i--) { t=0; for(j=i-lowbit(i)+1;j<=i;j++) t=a[j]+t; a[i]=t; }}int add(int i,int y){ while(i<=n) { a[i]=a[i]+y; i=lowbit(i)+i; }}int query(int x){ int sum=0;int i=x; while(i>0) { sum=sum+a[i]; i=i-lowbit(i); } return sum;}int main(){ int m,x,y;char s[10]; cin>>n>>m; for(int i=1;i<=n;i++) scanf("%d",&a[i]); begin(); while(m--) { cin>>s>>x>>y; if(s[0]=='A') add(x,y); else cout<<query(y)-query(x-1)<<endl; } return 0;}
阅读全文
0 0
- nyoj116士兵杀敌(二)
- NYOJ116 士兵杀敌
- NYOJ116 士兵杀敌(二)
- NYOJ116士兵杀敌(二)
- nyoj116 士兵杀敌(二)
- 忠诚 && 士兵杀敌(tyvj 1038 && nyoj116)
- NYOJ116 士兵杀敌(二)【树状数组】
- nyoj116——士兵杀敌(二)
- 【nyoj116】士兵杀敌二(线段树)
- NYOJ116 士兵杀敌(二)(树状数组)
- nyoj116士兵杀敌(二)线段树单点更新
- nyoj116 士兵杀敌(二)(线段树)
- nyoj116士兵杀敌(二)【线段树||树状数组】
- NYOJ116 士兵杀敌(二) 线段数、单点更新
- nyoj116 士兵杀敌(二) (树状数组)
- nyoj116 士兵杀敌(二)树状数组与线段树
- NYOJ116 士兵杀敌(二) 单点更新+区间求和
- nyoj116 士兵杀敌(二)(线段树的区间查询和单点更新)
- kafka使用场景
- show slave status判断主从同步状态
- 模拟实现strstr,memcpy,memmove
- spark提交应用的全流程分析
- Controller类中方法返回值的处理
- NYOJ116 士兵杀敌
- uva 12096 115 页
- 2017.08.04工作日记
- 菱形继承&菱形虚拟继承
- RAID全面解析
- prim算法的堆优化。
- Java内存模型与volatile
- 理解OAuth 2.0
- 怎样写设计文档