time limit: 3 sec memory limit: 128 mb
submit: 1715 solved: 728
[submit][status][discuss]
xlk覺得《上帝造題的七分鐘》不太過癮,於是有了第二部。
"第一分鐘,x說,要有數列,於是便給定了乙個正整數數列。
第二分鐘,l說,要能修改,於是便有了對一段數中每個數都開平方(下取整)的操作。
第三分鐘,k說,要能查詢,於是便有了求一段數的和的操作。
第四分鐘,彩虹喵說,要是noip難度,於是便有了資料範圍。
第五分鐘,詩人說,要有韻律,於是便有了時間限制和記憶體限制。
第六分鐘,和雪說,要省點事,於是便有了保證運算過程中及最終結果均不超過64位有符號整數型別的表示範圍的限制。
第七分鐘,這道題終於造完了,然而,造題的神牛們再也不想寫這道題的程式了。"
——《上帝造題的七分鐘·第二部》
所以這個神聖的任務就交給你了。
第一行乙個整數n,代表數列中數的個數。
第二行n個正整數,表示初始狀態下數列中的數。
第三行乙個整數m,表示有m次操作。
接下來m行每行三個整數k,l,r,k=0表示給[l,r]中的每個數開平方(下取整),k=1表示詢問[l,r]中各個數的和。
對於詢問操作,每行輸出乙個回答。
101 2 3 4 5 6 7 8 9 10
50 1 10
1 1 10
1 1 5
0 5 8
1 4 8197
61:對於100%的資料,1<=n<=100000,1<=l<=r<=n,數列中的數大於0,且不超過1e12。
2:資料不保證l<=r 若l>r,請自行交換l,r,謝謝!
對於求根號,直接暴力到線段樹葉子即可,可以證明最多根號loglogn次就能減到1
正當我以為自己寫的有瑕疵打算對拍,而且即將打完時,突然想起
「資料不保證l<=r 若l>r,請自行交換l,r,謝謝! 」
mdzz
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9bzoj3038#define min(a, b) ((a) < (b) ? (a) : (b))
10#define max(a, b) ((a) > (b) ? (a) : (b))
11#define abs(a) ((a) < 0 ? (-1 * (a)) : (a))
12 inline void swap(long
long &a, long
long &b)
1316 inline void read(long
long &x)
1723
24const
long
long inf = 0x3f3f3f3f;25
const
long
long maxn = 100000 + 10;26
27long
long
n, num[maxn], m;
2829
struct
node
3033 node()
34 }node[maxn << 2
];35
36 node merge(node &a, node &b)
3744
45void build(long
long o = 1, long
long l = 1, long
long r =n)
4653
long
long mid = (l + r) >> 1
;54 build(o << 1
, l, mid);
55 build(o << 1 | 1, mid + 1
, r);
56 node[o] = merge(node[o << 1], node[o << 1 | 1
]);57
return;58
}5960 node ask(long
long ll, long
long rr, long
long o = 1)61
7172
void modify(long
long ll, long
long rr, long
long o = 1)73
79if(node[o].ma <= 1) return;80
long
long mid = (node[o].l + node[o].r) >> 1;81
if(mid >= ll) modify(ll, rr, o << 1
);82
if(mid < rr) modify(ll, rr, o << 1 | 1
);83 node[o] = merge(node[o << 1], node[o << 1 | 1
]);84
return;85
}8687int
main()
88103
else
modify(tmp2, t***);
104}
105return0;
106 }
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...