0%

BD202429 毕业照(binary lift facilitate the calculation)

思路讲解

前两问用二分,贪心解决。

最后一问需要使用双指针+倍增法。

AC代码

https://www.matiji.net/exam/oj/submit-detail/13507760/29/4498/F16DA07A4D99E21DFFEF46BD18FF68AD

心路历程(WA,TLE,MLE……)

调了比较久,最后终于是调出来了。最重要的就是这个倍增的板子,需要从N+1开始遍历。

1
2
3
4
5
6
7
vector<vector<ll> > jump(N+5,vector<ll>(mx_k+2,0));
ROF(i,N+1,1){
jump[i][0]=i<=N?nextPos[i]+1:N+1;
FOR(j,1,mx_k){
jump[i][j]=jump[jump[i][j-1]][j-1];
}
}