不知道为什么用C++输入输出死活不过,换成C的就过了。。。 #include#include //============================== #define maxn 50020 int c[maxn]; int a[maxn]; int n; int t; int lowbit(int x) { return x&(-x); } int Sum(int n) { int sum = 0; while(n>0) { sum += c[n]; n = n - lowbit(n); } return sum; } void update(int i,int x) { while(i <= n) { c[i] = c[i] + x; i = i + lowbit(i); } } int GetSum(int x1,int x2) { return Sum(x2) - Sum(x1-1); } //=================================== int main() { scanf("%d",&t); int count = 0; while(t--) { count++; memset(a,0,sizeof(a)); memset(c,0,sizeof(c)); scanf("%d",&n); for(int i = 1; i <= n; i++) { scanf("%d",&a[i]); update(i,a[i]); } //cout<<"case "<