NYOJ116士兵杀敌(二)
来源:互联网 发布:大数据专业大学排名 编辑:程序博客网 时间:2024/05/16 22:22
详细思路:http://www.cnblogs.com/Howe-Young/p/4009223.html?ADUIN=1466989448&ADSESSION=1413411257&ADTAG=CLIENT.QQ.5359_.0&ADPUBNO=26397
#include <stdio.h>const int maxn = 1000001;int a[maxn],N;int lowbit(int x){//求最低位1表示的数字 return x&(-x);}/*如:x =1: 1 &-1(设位数为8)0000 0001 & 1111 1111 = 1 x = 6:6 & -6 0000 0110&1111 1010 = 2其实就是:求出2^p(其中p: x 的二进制表示数中, 右向左数第一个1的位置),如6的二进制表示为110,向左数第零个为0,第一个为1,则p=1,故Lowbit(6) = 2^1 = 2。*/void update(int i,int num){while(i<=N){a[i]+=num;i+=lowbit(i); }}int S(int x){int sum = 0;while(x>0){sum+=a[x];x=x-lowbit(x);}return sum;}int main(){int x,y,ans,num,t;char s[10];scanf("%d%d",&N,&t);for(int i = 1; i<=N; i++){scanf("%d",&num);update(i,num);}while(t--){scanf("%s %d %d",s,&x,&y);if(s[0] == 'A'){update(x,y);}elseprintf("%d\n",S(y)-S(x-1));}}
0 0
- NYOJ116 士兵杀敌(二)
- NYOJ116士兵杀敌(二)
- nyoj116 士兵杀敌(二)
- nyoj116士兵杀敌(二)
- NYOJ116 士兵杀敌(二)【树状数组】
- nyoj116——士兵杀敌(二)
- 【nyoj116】士兵杀敌二(线段树)
- NYOJ116 士兵杀敌(二)(树状数组)
- nyoj116 士兵杀敌(二)(线段树)
- nyoj116 士兵杀敌(二) (树状数组)
- nyoj116士兵杀敌(二)线段树单点更新
- nyoj116士兵杀敌(二)【线段树||树状数组】
- NYOJ116 士兵杀敌(二) 线段数、单点更新
- nyoj116 士兵杀敌(二)树状数组与线段树
- NYOJ116 士兵杀敌(二) 单点更新+区间求和
- NYOJ116 士兵杀敌
- nyoj116 士兵杀敌(二)(线段树的区间查询和单点更新)
- NYOJ116 士兵杀敌(二)(线段树区单点更新,区间求和,zkw线段树)
- ViewPager相互嵌套,导致里层ViewPager无法滑动问题解决
- 2017 蓝桥模拟 排列序数 康托展开
- Unity中使用Protobuffer探讨
- 线刷手机
- Log和Canny边缘检测能力对比(附Matlab程序)
- NYOJ116士兵杀敌(二)
- 远程服务器桌面登陆后黑屏或无法进行操作的解决办法
- 自己常用网站
- mysql语法
- php怎么查看一个变量的占用内存
- Linux编程基础知识
- java中的sleep()和wait()的区别
- 基于Java swing的纯文件选择器,省略按钮,运行程序直接进入文件选择框
- hdu 2111 Saving HDU