給了你n,然後n個數字在一個數組中,接下來m個詢問,每個詢問三個數字 t,x,y,若t==0,那麼修改區間[x,y]的每一個值,變為原來每個位置上的數 開根號取整,若t==1,那麼對區間[x,y]求和
由於n,m,很大,所以樹狀數組鐵定超時,若直接用線段樹來做區間修改,那麼也是超時,這類題目沒別的方法了,靜心剪枝,發現題目給的數據范圍為2^63,有沒有發現,2^63開根號 絕對不需要開10次,就能到1,到1以後就不需要再開了,意思就是若有某個區間[x,y]每一個點的值都為1時,這一段區間事實上是不需要處理的,怎麼判斷呢,簡單,這個區間的和 等於 區間大小就是了,
都改好了 也不TLE了,也不WA了,但是一直RE,搞不懂,直到最後也沒搞懂,最後有隊友說題目給的區間 [x,y], x的值不一定比y小,所以需要判別一下,題目在交代x,y的取值范圍時,確實沒有說x
#include
#include
#include
#include
#include
#include
#include
#include
#include