暑假-树状数组-A - 敌兵布阵

来源:互联网 发布:个人怎样做网络销售 编辑:程序博客网 时间:2024/06/08 14:31

一道非常非常简单的树状数组入门题。 直接套模板的事。

然而我TLE了3次,一直在原因。最后发现用一模一样的代码

C++的cin.cout会超时,而应C的scanf,print 只要265MS就过了。

有这么大差距么。。。。还是喜欢用C++的cin和cout。

/*题意:中文题,见hdu 1166思路:模板题,直接套模板。*/#include<iostream> #include<stdio.h>using namespace std;  const int MAXN=50005;  long long int c[MAXN];int n,t,temp=0,value,a,b;char com[10]; int lowbit(int x){      return x&(-x);  }  int sum(int i)  {      int ans=0;      while(i>0)    {          ans+=c[i];        i-=lowbit(i);      }    return ans;}  void add(int i,int val){    while(i<=n)    {          c[i]+=val;          i+=lowbit(i);    }  }  int main()  {      cin>>t;    while(t--)      {memset(c,0,sizeof(c));        cin>>n;        for(int i=1;i<=n;i++)          {cin>>value;add(i,value);        }cout<<"Case "<<++temp<<":"<<endl;        while(cin>>com)        {            if(com[0]=='E')            {                break;            }cin>>a>>b;            if(com[0]=='Q')              {cout<<sum(b)-sum(a-1)<<endl;            }            else if(com[0]=='A')            {                  add(a,b);              }              else              {                  add(a,-b);            }          }      }      return 0;  } 



0 0
原创粉丝点击