树状数组
flyhero99
这个作者很懒,什么都没留下…
展开
-
(树状数组)hdu1556 Color the ball(区间更新,单点查询)
树状数组最基本的应用是单点更新,区间和查询,但本题略有不同,本题是区间更新,单点查询。我建立树状数组时用的是向上更新,向下求和,因此,只需在输入时将a到n这一区间都+1,再将b+1到n这一区间都-1即可完成数组的维护。最后输出每点对应的sum值即为被染色的次数。具体代码如下: #include typedef long long ll; const int maxn = 100010; in原创 2017-08-09 10:53:28 · 304 阅读 · 0 评论 -
(树状数组)hdu1166 敌兵布阵
今天学习了树状数组,看了能解决的问题之后觉得跟线段树非常像,不过后来了解到线段树的用途其实很广泛,如单点更新、区间更新、区间查询、最值查询等问题,都能够高效的解决。而树状数组则是一种空间占用率很低、且算法效率高(O(logn))的一种数据结构。并且,代码很简洁,只用短短几行代码便完成了所有的操作。 首先是lowbit操作——树状数组的核心。这个操作的作用是把一个二进制数变为只保留最低位的1后形成原创 2017-08-07 20:40:02 · 325 阅读 · 0 评论 -
搞懂树状数组
引用请注明出处:http://blog.csdn.net/int64ago/article/details/7429868 写下这个标题,其实心里还是没底的,与其说是写博帖,不如说是做总结。第一个接触树状数组还是两年前,用什么语言来形容当时的感觉呢?……太神奇了!真的,无法表达出那种感觉,她是那么的优雅,10行不到的代码,却把事情干的如此出色!没有了解她原理的前提下即使把代码倒背转载 2017-08-07 17:24:02 · 184 阅读 · 0 评论