求助!

P3374 【模板】树状数组 1

@[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


|