多校第七场小知识~

还是不会做题,没关系,那就先了解一些相关知识就好~

1010

.

矩阵快速幂+分块

矩阵快速幂,因为|fn-1  fn-2|*矩阵A=|c*fn-2+d*fn-1|;

分块,因为p/n随着n而变化,所以需要按照变化点来分成不同块,这样复杂度才可以降到根号p;

分块:设  x=p/i,若x=p/i,i=p/x=p/(p/i),即此时i为使得p/i值不变最大的那个i。。。所以按照i=p/(p/i)+1进行分块即可;

快速幂:以求a的b次方来介绍,=        11的二进制为1101;最终复杂度为log₂N;

模板:int pow(int a,int b){

   int  r=1,base=a;
   while (b){
     if (b&1) r*=base;
     base*=base;
     b>>=1;
   }
   return  r;
}
矩阵快速幂:https://blog.csdn.net/wust_zzwh/article/details/52058209简直不要更好的博文~
                     根据递推式构造矩阵,理解&注意代码细节,其他的交给模板哈哈~
 
 
mod1e9+7:    const long long mod=1e9+7;
                       每一次模,%mod即可;
1009  倍增,树的分块,写树
1005 欧拉函数,莫比乌斯反演。。。

猜你喜欢

转载自www.cnblogs.com/larvie/p/9477412.html