zoukankan      html  css  js  c++  java
  • 矩阵快速幂板子

    struct Matrix
    {
        __int64 v[110][110];
        Matrix()
        {
            memset(v, 0, sizeof(v));
        }
        Matrix operator *(const Matrix B)    // 重载的速度比写独立的函数慢点。
        {
            int i, j, k;
            Matrix C;
            for(i = 0; i <= tot; i ++)
                for(j = 0; j <= tot; j ++)
                    for(k = 0; k <= tot; k ++)
                    {
                        C.v[i][j] = (C.v[i][j] + v[i][k] * B.v[k][j]) % MOD;
                    }
            return C;
        }
    };
    Matrix mtPow(Matrix A, int k)           // 用位运算代替递归求 A^k。
    {
        int i;
        Matrix B;
        for(i = 0; i <= tot; i ++)
        {
            B.v[i][i] = 1;
        }
        while(k)
        {
            if(k & 1) B = B * A;
            A = A * A;
            k >>= 1;
        }
        return B;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    javascript中获取dom元素高度和宽度
    $.ajax()方法详解
    JQ中$(window).load和$(document).ready区别与执行顺序
    第几个幸运数
    乘积尾零
    星期一
    分数
    卡片换位
    冰雹数
    打印方格
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/10294217.html
Copyright © 2011-2022 走看看