博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
变化的区间树状数组,单点查询
阅读量:7051 次
发布时间:2019-06-28

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

hdu  1556 

要想区间改动的话,那么节点就必须往上更新,查询时往上累加。(区间改动。单点查询)
#include
#include
#include
using namespace std;const int maxn=100000+5;int C[maxn];int n;int lowbit(int x){ return (-x)&x;}void update(int x,int y){ for(int i=x; i>0;i-=lowbit(i)) C[i]+=y;}int query(int x){ int s=0; for(int k=x; k<=n; k+=lowbit(k)) s+=C[k]; return s;}int main() { int a,b; while(cin>>n) { for(int i=1; i<=n; i++) C[i]=0; for(int h=0;h

csu 1335 高桥和低桥(树状数组+二分)

#include
#include
#include
#include
using namespace std;const int N = 1e5+10;int c[N],m,n,k,a[N];int x[N],y[N];int lowbit(int k){ return k&(-k);}void add(int k,int he){ while(k>0) { c[k]+=he; k-=lowbit(k); }}int Q(int k){ int query=0; while(k<=n) { query+=c[k]; k+=lowbit(k); } return query;}int main(){ #ifndef ONLINE_JUDGE freopen("in.cpp","r",stdin); #endif // ONLINE_JUDGE int t,from,to,he,kkk=1; while(~scanf("%d%d%d",&n,&m,&k)) { memset(c,0,sizeof(c)); for(int i=0;i
=k) ans = ans+1; } printf("Case %d: %d\n",kkk++,ans); } return 0;}
相关题:  hdu  
                       

版权声明:本文博主原创文章。博客,未经同意不得转载。

你可能感兴趣的文章
基于百度定位SDK的定位服务的实现
查看>>
是你的,就是你的。越是紧握,越容易失去。
查看>>
[LeetCode] Implement Stack using Queues
查看>>
cherrypy安装使用,配置python环境变量
查看>>
MVC验证12-使用DataAnnotationsExtensions对整型、邮件、最小值、文件类型、Url地址等验证...
查看>>
Source not found
查看>>
【CLRS】《算法导论》读书笔记(一):堆排序(Heapsort)
查看>>
支持类型过滤的枚举器
查看>>
HDU 4275 Color the Tree(树同构)
查看>>
php里Array2xml
查看>>
以boost::function和boost:bind取代虚函数
查看>>
oracle监听器(listener)配置心得
查看>>
wince -- RS485半双工实现
查看>>
nginx 源码学习笔记(二)——nginx精粹-模块
查看>>
DirectX截图黑屏的解决办法
查看>>
Expanding Cat5e LAN segments over 100 metres using OUTREACH Ethernet LAN extenders
查看>>
关于Oracle冷备份与热备份的对比
查看>>
C#条件判断-嵌套if结构
查看>>
Selenium:Hello,World!
查看>>
HibernateTemplate 查询
查看>>