ac通道:
線段樹是我最不熟悉的東西之一,於是找幾道題搞搞
這題就很簡單了
有乙個神奇的優化:
如果乙個結點值為0或者1就不再更新;
如果一棵樹左右兒子都不再更新,它也不再更新
#include#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
#define maxn 100010
#define file "read"
#define up(i,j,n) for(ll i=j;i<=n;i++)
#define dn(i,j,n) for(ll i=j;i>=n;i--)
namespace init
inline ll read()
while(isdigit(ch))
return x*f;
}}using namespace init;
ll n,m,a[maxn],tr[maxn<<2],vis[maxn<<2];
void build(ll l,ll r,ll p)
ll mid=(l+r)>>1;
build(l,mid,p<<1); build(mid+1,r,p<<1|1);
tr[p]=tr[p<<1]+tr[p<<1|1];
vis[p]=vis[p<<1]&vis[p<<1|1];
}void change(ll l,ll r,ll p,ll x,ll y)
ll mid=(l+r)>>1;
if(mid>=y) change(l,mid,p<<1,x,y);
else if(midr||y=r) return tr[p];
ll mid=(l+r)>>1;
return ask(l,mid,p<<1,x,y)+ask(mid+1,r,p<<1|1,x,y);
}int main()
return 0;
}
bzoj 3038 上帝造題的七分鐘2
time limit 3 sec memory limit 128 mb submit 923 solved 413 submit status discuss xlk覺得 上帝造題的七分鐘 不太過癮,於是有了第二部。第一分鐘,x說,要有數列,於是便給定了乙個正整數數列。第二分鐘,l說,要能修改,於...
BZOJ 3038 上帝造題的七分鐘2
description xlk覺得 上帝造題的七分鐘 不太過癮,於是有了第二部。第一分鐘,x說,要有數列,於是便給定了乙個正整數數列。第二分鐘,l說,要能修改,於是便有了對一段數中每個數都開平方 下取整 的操作。第三分鐘,k說,要能查詢,於是便有了求一段數的和的操作。第四分鐘,彩虹喵說,要是noip...
bzoj3038 上帝造題的七分鐘2
description xlk覺得 上帝造題的七分鐘 不太過癮,於是有了第二部。第一分鐘,x說,要有數列,於是便給定了乙個正整數數列。第二分鐘,l說,要能修改,於是便有了對一段數中每個數都開平方 下取整 的操作。第三分鐘,k說,要能查詢,於是便有了求一段數的和的操作。第四分鐘,彩虹喵說,要是noip...