@[xzwang79](/user/1022631) 建议先看完题目。
by endswitch @ 2024-09-04 20:57:49
@[endswitch](/user/773915) ?
by xzwang79 @ 2024-09-04 20:58:42
你 `sum` 写错了。
by endswitch @ 2024-09-04 21:00:25
不是这么查询的。
by endswitch @ 2024-09-04 21:00:37
建议写成:
```cpp
int sum(int x){
int res=0;
for(int i=x; i; i-=lowbit(i)){
res += a[i];
}
return res;
}
```
查询的时候:
```cpp
cout << sum(y) - sum(x-1) << "\n";
```
还有输入的循环应该是 `for(int i=1; i<=n; i++)`
@[xzwang79](/user/1022631)
by imzfx_Square @ 2024-09-04 21:05:20
@[xzwang79](/user/1022631)
```cpp
inline void query(int x) {
int res = 0;
for( ; x ; x -= lowbit(x))
res += t[x];
return res;
}
inline void sum(int x, int y) {
return query(y) - query(x - 1);
}
```
by endswitch @ 2024-09-04 21:05:20
@[xzwang79](/user/1022631) 我挺疑惑为啥你输入是 0~n-1 的
by yinianxingkong @ 2024-09-04 21:05:31
@[xzwang79](/user/1022631)
```cpp
inline void query(int x) {
int res = 0;
for( ; x ; x -= lowbit(x))
res += t[x];
return res;
}
inline void sum(int x, int y) {
return query(y) - query(x - 1);
}
```
by endswitch @ 2024-09-04 21:05:32
lz 代码思路是没有问题的。。。
by yinianxingkong @ 2024-09-04 21:06:01
@[endswitch](/user/773915) @yinianxingkong\
谢谢,已A,虽然没用上你们的方法,但还是感谢。\
发现下标写错了,应该是0~n-1的
by xzwang79 @ 2024-09-06 19:15:46