社区讨论
为什么too many or too few lines
P2068统计和参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi6nul72
- 此快照首次捕获于
- 2025/11/20 07:55 4 个月前
- 此快照最后确认于
- 2025/11/20 07:55 4 个月前
#include
#include
#include
using namespace std;
const int MAXN=1e5+10;
inline int read(){
int out=0;
char c=getchar();
while(c<48||c>57) c=getchar();
while(c<=57&&c>=48){
out=(out<<1)+(out<<3)+c-48;
c=getchar();
}
return out;
}
inline void write(int x){
if(x>9) write(x/10);
putchar(x%10+48);
}
int n;
struct tree{
int c[MAXN];
inline int lowbit(int k){return k&-k;}
void add(int k,int x){
while(k<=n){
c[k]+=x;
k+=lowbit(k);
}
}
int sum(int k){
int ret=0;
while(k){
ret+=c[k];
k-=lowbit(k);
}
return ret;
}
int getsum(int r,int l){
return sum(r)-sum(l-1);
}
}t;
int main(){
n=read();
int m=read();
for(int i=1;i<=m;++i){
char c=getchar();
if(c=='x'){
int k=read();
t.add(k,read());
}
else{
write(t.getsum(read(),read()));
putchar(10);
}
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...