codevs2492上帝造題的七分鐘 2(線段樹)

2022-05-15 23:49:44 字數 992 閱讀 6134

/*

區間修改 區間查詢 可以用線段樹搞

但是一般的標記下放對這個題好像不合適

只能改葉子 然後更新父親(雖然跑的有點慢)

小優化:如果某個點是1 就不用再開方了

所以搞乙個f[i]標記 i 這個點還需不需要處理下去

注意用longlong 還有就是陣列開大

*/#include

#include

#include

#include

#define ll long long

#define maxn 500010

using

namespace

std;

ll n,m,num,x,y,z;

ll a[maxn],f[maxn];

struct

node

t[maxn*2

];ll init()

while(s>='

0'&&s<='9'

)

if(f==0)return

x;

else

return -x;

}void

build(ll ll,ll rr)

else t[k].sum=a[ll];

}void

update(ll k,ll ll,ll rr)

ll mid=(ll+rr)/2

;

if(y2

);

if(z>=mid)update(t[k].rc,(ll+rr)/2

,rr);

t[k].sum=t[t[k].lc].sum+t[t[k].rc].sum;

f[k]=f[t[k].lc]&&f[t[k].rc];//

如果左右兒子都是1 那麼父親點也不用更新了.

}ll find(ll k,ll ll,ll rr)

intmain()

}

CodeVS2492 上帝造題的七分鐘2

題目描述 description xlk覺得 上帝造題的七分鐘 不太過癮,於是有了第二部。第一分鐘,x說,要有數列,於是便給定了乙個正整數數列。第二分鐘,l說,要能修改,於是便有了對一段數中每個數都開平方 下取整 的操作。第三分鐘,k說,要能查詢,於是便有了求一段數的和的操作。第四分鐘,彩虹喵說,要...

2492 上帝造題的七分鐘 2

時間限制 1 s 空間限制 64000 kb 題目等級 大師 master 題解xlk覺得 上帝造題的七分鐘 不太過癮,於是有了第二部。第一分鐘,x說,要有數列,於是便給定了乙個正整數數列。第二分鐘,l說,要能修改,於是便有了對一段數中每個數都開平方 下取整 的操作。第三分鐘,k說,要能查詢,於是便...

藍橋杯 上帝造題5分鐘

問題描述 第一分鐘,上帝說 要有題。於是就有了l,y,m,c 第二分鐘,lyc說 要有向量。於是就有了長度為n寫滿隨機整數的向量 第三分鐘,yuhch說 要有查詢。於是就有了q個查詢,查詢向量的一段區間內元素的最小值 第四分鐘,mzc說 要有限。於是就有了資料範圍 第五分鐘,cs說 要有做題的。說完...