楼主有地方写错了,树状数组sum对某个元素进行修改时: int add(int x){ while(x<maxn){ c[x]++;//这里应该改成sum[x]++; x+=lowbit(x); } }