Bounce 彈飛綿羊

2022-08-04 19:09:10 字數 595 閱讀 1649

bounce 彈飛綿羊

分塊

將整個大區間分成若干塊,每個點維護到下乙個塊需要跳的次數以及會跳到哪個點(分塊要注意細節,區間開閉容易弄亂)。

**如下:

1 #include2 #include3 #include4 #include5

#define b (int(sqrt(n)))

6#define n 200000

7using

namespace

std;

8struct

noda[n+5

];12

intn,m;

13int main(void

)else27}

28 scanf("

%d",&m);

29while(m--)

39 printf("

%d\n

",sum);

40 }else

if(type==2

)else55}

56}57}

58 }

Hnoi2010 Bounce 彈飛綿羊

從左到右有n個位置,在第i個位置會被彈到第i a i 個位置,超出範圍則掛掉,有q個操作,一種是更改某一位置上的a i 一種是詢問第i個位置什麼時候會掛掉 設f i 為i在其塊內最少跳多少次會跳出這個塊,而g i 表示他跳出塊後會跳到哪個點,於是修改時我們可以重構塊,詢問時就乙個乙個塊跳。時間複雜度...

HNOI2010 彈飛綿羊 bounce

標籤 分塊。題解 200000,而且標號從0開始,很符合分塊的條件啊。看看怎麼實現。首先分成 n個區間,然後如果我們對於每乙個位置i,求出乙個next i 和step i 分別表示跳到的後乙個位置與步數,因為是分塊所以就是跳到下乙個區間的步數與位置了。處理這兩個陣列要從前到後,只需要o n 然後查詢...

BZOJ2002 Bounce 彈飛綿羊 《分塊》

bounce 彈飛綿羊 某天,lostmonkey發明了一種超級彈力裝置,為了在他的綿羊朋友面前顯擺,他邀請小綿羊一起玩個遊戲。遊戲一開始,lostmonkey在地上沿著一條直線擺上n個裝置,每個裝置設定初始彈力係數ki,當綿羊達到第i個裝置時,它會往後彈ki步,達到第i ki個裝置,若不存在第i ...