树状数组-百度百科
#include<iostream>
#include<vector>
using namespace std;
class BinTree:vector<int>
{
public:
explicit BinTree(int k=0)
{
assign(k+1,0);
}
int lowbit(int k)
{
return k&-k;
}
int sum(int k)
{
return k>0?sum(k-lowbit(k))+(*this)[k]:0;
}
int last()
{
return size()-1;
}
void add(int k,int w)
{
if(k>last())return;
(*this)[k]+=w;
add(k+lowbit(k),w);
}
};
int main()
{
BinTree test(123);
test.add(27,72);
cout<<test.sum(26)<<' '<<test.sum(27)<<' '<<test.sum(123);
}
#include<vector>
using namespace std;
class BinTree:vector<int>
{
public:
explicit BinTree(int k=0)
{
assign(k+1,0);
}
int lowbit(int k)
{
return k&-k;
}
int sum(int k)
{
return k>0?sum(k-lowbit(k))+(*this)[k]:0;
}
int last()
{
return size()-1;
}
void add(int k,int w)
{
if(k>last())return;
(*this)[k]+=w;
add(k+lowbit(k),w);
}
};
int main()
{
BinTree test(123);
test.add(27,72);
cout<<test.sum(26)<<' '<<test.sum(27)<<' '<<test.sum(123);
}
下一篇:爱不爱,让时间证明
声明:以上文章均为用户自行添加,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。
文章熱度:★☆☆☆☆
文章難度:☆☆☆☆☆
文章質量:☆☆☆☆☆
說明:系統根據文章的熱度、難度、質量自動認證,已認證的文章將參與打字排名!
本文打字排名TOP20
- 1游客17600047... 05-27 15:03251 KPM
- 2fa_555 05-27 14:58221 KPM
- 3肥婆纳妾 06-17 11:49220 KPM
- 4游客17791981... 05-24 18:34158 KPM
- 5游客20864835... 12-25 15:10111 KPM
- 6什么是打字 05-27 13:0888 KPM
- 7游客17782638... 05-24 18:5881 KPM
- 8游客17792068... 05-24 19:2380 KPM
- 9游客17598312... 05-24 18:5578 KPM
- 10国际型男 05-24 18:5477 KPM
- 11游客17791019... 05-24 17:5073 KPM
- 12游客17772707... 05-24 18:5968 KPM
- 13游客15788137... 05-27 14:5968 KPM
- 14游客16150003... 08-20 08:5766 KPM
- 15游客15519348... 05-27 15:2364 KPM
- 16游客17585267... 05-27 14:5063 KPM
- 17游客17740532... 05-24 18:3858 KPM
- 18游客15720230... 05-27 14:5953 KPM
- 19游客17779333... 05-24 18:3748 KPM
- 20游客17597682... 05-24 18:4646 KPM
用户更多文章推荐
- acm 模板:最长上升子序列2018-11-30