zoukankan      html  css  js  c++  java
  • 【HDU】3074 Multiply game

     1 #include<cstdio>
     2 typedef __int64 LL;
     3 #define MAXN 50010
     4 #define MOD 1000000007
     5 LL tree[MAXN<<2];
     6 inline void PushUp(int rt)
     7 {
     8     tree[rt]=tree[rt<<1]*tree[rt<<1|1];
     9     tree[rt]%=MOD;
    10 }
    11 void Build(int L,int R,int rt)
    12 {
    13     if(L==R)
    14         scanf("%I64d",&tree[rt]);
    15     else
    16     {
    17         int mid=(L+R)>>1;
    18         Build(L,mid,rt<<1);
    19         Build(mid+1,R,rt<<1|1);
    20         PushUp(rt);
    21     }
    22 }
    23 void Update(int x,int val,int L,int R,int rt)
    24 {
    25     if(L==R)
    26         tree[rt]=val;
    27     else
    28     {
    29         int mid=(L+R)>>1;
    30         if(mid>=x)
    31             Update(x,val,L,mid,rt<<1);
    32         else
    33             Update(x,val,mid+1,R,rt<<1|1);
    34         PushUp(rt);
    35     }
    36 }
    37 LL Query(int x,int y,int L,int R,int rt)
    38 {
    39     if(x<=L&&R<=y)
    40         return tree[rt];
    41     int mid=(L+R)>>1;
    42     LL ans=1;
    43     if(mid>=x)
    44     {
    45         ans*=Query(x,y,L,mid,rt<<1);
    46         ans%=MOD;
    47     }
    48     if(y>mid)
    49     {
    50         ans*=Query(x,y,mid+1,R,rt<<1|1);
    51         ans%=MOD;
    52     }
    53     return ans;
    54 }
    55 int main()
    56 {
    57     int c,n,q,cmd,x,y;
    58     scanf("%d",&c);
    59     while(c--)
    60     {
    61         scanf("%d",&n);
    62         Build(1,n,1);
    63         scanf("%d",&q);
    64         while(q--)
    65         {
    66             scanf("%d%d%d",&cmd,&x,&y);
    67             if(cmd)
    68                 Update(x,y,1,n,1);
    69             else
    70                 printf("%I64d\n",Query(x,y,1,n,1));
    71         }
    72     }
    73     return 0;
    74 }
    新博客:www.zhixiangli.com
  • 相关阅读:
    https 适配
    SDWebImage 的简单使用方法
    第三方API使用的好习惯
    关于IPicture::Render函数
    标准模板库(STL)MAP容器使用详解
    STL容器
    c++ 遍历map的时候删除元素
    C++的try_catch异常
    Makefile 自动生成头文件的依赖关系 .
    调试过程中,内存泄露检测信息
  • 原文地址:https://www.cnblogs.com/DrunBee/p/2513756.html
Copyright © 2011-2022 走看看