这一道用树状数组写的
#include <stdio.h>
#include <string.h>
#define lowbit(x) (x&(-x))
#define M 50050
int ar[M],n;
void add (int u,int
w)
{
while (u
<= n)
//从该结点到根结点都加上w
{
ar[u] += w;
u += lowbit(u); //找它的父亲结点
}
}
int sum (int u)
{
int ans =
0;
while (u
> 0)
//ar[1]~ar[u] 的和
ans += ar[u],u -= lowbit(u);
return
ans;
}
int main ()
{
int
a,t,w,count = 0;
char
str[10];
scanf
("%......
阅读全文