zoukankan      html  css  js  c++  java
  • 【模板】快速幂

    普通的快速幂

     1 #include<stdio.h>
     2 #define lll long long
     3 lll ksm(int,int);
     4 int x,n;
     5 int main()
     6 {
     7     scanf("%d%d",&x,&n);
     8     printf("%lld",ksm(x,n));
     9     return 0;
    10 }
    11 lll ksm(int x,int n)
    12 {
    13     lll ret = x; n--;
    14     while(n)
    15     {
    16         if(n & 1) ret *= x;
    17         x *= x;
    18         n >>= 1;
    19     }
    20     return ret;
    21 }
    View Code

     矩阵快速幂

     1 #include<stdio.h> 
     2 #define maxn 105
     3 #define mo 1000000007
     4 #define lll long long
     5 int n,m;
     6 struct mat
     7 {
     8     lll ori[maxn][maxn];
     9     mat operator * (const mat &y) const
    10     {
    11         mat ret;
    12         int i,j,k;
    13         for(i=1;i<=n;i++)
    14             for(j=1;j<=n;j++)
    15             {
    16                 ret.ori[i][j] = 0;
    17                 for(k=1;k<=n;k++)
    18                     ret.ori[i][j] = (ret.ori[i][j]+ori[i][k]*y.ori[k][j])%mo;
    19             }
    20         return ret;
    21     }
    22 };
    23 mat A,ans;
    24 mat ksm (int k,mat a)
    25 {
    26     mat ret = a; k--;
    27     while(k)
    28     {
    29         if(k&1) ret = ret * a;
    30         a = a*a;
    31         k >>= 1; 
    32     }
    33     return ret;
    34 }
    35 int main()
    36 {
    37     scanf("%d%d",&n,&m);
    38     int i,j;
    39     for(i=1;i<=n;i++)
    40         for(j=1;j<=n;j++)
    41             scanf("%d",&A.ori[i][j]);
    42     ans = ksm(m,A);
    43     for(i=1;i<=n;i++)
    44     {
    45         for(j=1;j<=n;j++) printf("%lld ",ans.ori[i][j]);
    46         printf("
    ");
    47     }
    48     return 0;
    49 }
    View Code
  • 相关阅读:
    浏览器缓存机制
    关于CSRF的攻击
    关于CGI、FastCGI和PHP-FPM的关系
    PHP-FPM进程数的设定
    一个论坛引发的血案
    Django中的权限系统
    Django中使用ModelForm实现Admin功能
    Django中使用Bootstrap
    Django的用户认证
    vtkMapper
  • 原文地址:https://www.cnblogs.com/hzs2000/p/6708359.html
Copyright © 2011-2022 走看看