zoukankan      html  css  js  c++  java
  • 【ZOJ】3279 Ants

     1 #include<cstdio>
     2 #define MAXN 100010
     3 int tree[MAXN<<2];
     4 inline void PushUp(int rt)
     5 {
     6     tree[rt]=tree[rt<<1]+tree[rt<<1|1];
     7 }
     8 void Build(int L,int R,int rt)
     9 {
    10     if(L==R)
    11         scanf("%d",&tree[rt]);
    12     else
    13     {
    14         int mid=(L+R)>>1;
    15         Build(L,mid,rt<<1);
    16         Build(mid+1,R,rt<<1|1);
    17         PushUp(rt);
    18     }
    19 }
    20 void Update(int x,int val,int L,int R,int rt)
    21 {
    22     if(L==R)
    23         tree[rt]=val;
    24     else
    25     {
    26         int mid=(L+R)>>1;
    27         if(mid>=x)
    28             Update(x,val,L,mid,rt<<1);
    29         else
    30             Update(x,val,mid+1,R,rt<<1|1);
    31         PushUp(rt);
    32     }
    33 }
    34 int Query(int x,int L,int R,int rt)
    35 {
    36     if(L==R)
    37         return L;
    38     int mid=(L+R)>>1;
    39     if(x<=tree[rt<<1])
    40         return Query(x,L,mid,rt<<1);
    41     else
    42     {
    43         x-=tree[rt<<1];
    44         return Query(x,mid+1,R,rt<<1|1);
    45     }
    46 }
    47 int main()
    48 {
    49     int n,q,x,y;
    50     char ch;
    51     while(~scanf("%d",&n))
    52     {
    53         Build(1,n,1);
    54         scanf("%d",&q);
    55         while(q--)
    56         {
    57             scanf(" %c%d",&ch,&x);
    58             if(ch=='p')
    59             {
    60                 scanf("%d",&y);
    61                 Update(x,y,1,n,1);
    62             }
    63             else
    64                 printf("%d\n",Query(x,1,n,1));
    65         }
    66     }
    67     return 0;
    68 }
    新博客:www.zhixiangli.com
  • 相关阅读:
    udp tcp
    easy_install jinja2 mac linux
    linux 常用命令;
    Mac android 开发 sdk配置和手机连接
    ubuntu server 分区
    常见操作
    环境搭建相关
    ssh登录虚拟机上的linux
    算法学习
    转载一个 测试java类的玩意
  • 原文地址:https://www.cnblogs.com/DrunBee/p/2513777.html
Copyright © 2011-2022 走看看