傳送門ber~
不會寫lct-。-,分塊水過
記錄多少次能跳出自己的塊,和跳到的點是哪個
修改時更改本塊x之前的部分
統計時模擬一遍就可以了
lct題解可以看這個人
**如下:
#include
#include
#include
#define n 200050
using
namespace
std;
inline
int read()
int n,m,t,x,y,block_size,block_cnt;
int a[n],block[n],s[n],p[n];
inline
void solve(int x)
printf("%d\n",tmp);
}inline
void modify(int x,int k)
}int main()
block_cnt=block[n];
for(int i=n;i>=1;i--)
m=read();
while(m--)
}return
0;}
bzoj 2002 彈飛綿羊 分塊
某天,lostmonkey發明了一種超級彈力裝置,為了在他的綿羊朋友面前顯擺,他邀請小綿羊一起玩個遊戲。遊戲一開始,lostmonkey在地上沿著一條直線擺上n個裝置,每個裝置設定初始彈力係數ki,當綿羊達到第i個裝置時,它會往後彈ki步,達到第i ki個裝置,若不存在第i ki個裝置,則綿羊被彈飛...
bzoj2002 彈飛綿羊 分塊orLCT
先簡單講一下lct做法,每個點以它的到達點為父節點 沒有到達點就連向根 結果就是深度。然後修改就是改變父親,乙個cut再乙個link就好了。然後是分塊。每個點維護它到達它所在塊外面的點,及步數,預處理o n 查詢時o n m 修改時只需要修改x所在塊在x前面的那些點即可,時間o m 因此總時間複雜度...
bzoj2002 彈飛綿羊
lct裸題 給出一棵樹,有修改及詢問,修改操作為修改乙個節點的父親,詢問乙個節點到根的點數。詢問及修改前只需access一遍即可。include include include include include include define rep i,x,y for int i x i y i de...