zoukankan      html  css  js  c++  java
  • Sequence

    ps:分段矩阵快速幂,因为P范围内只有√P段是不同的。写出的BUG:矩阵讲究左乘和右乘;取模较多可能会T,因为模运算很耗时;除法可能会除到0;只在3 ~ n的范围内分段,注意某段的端点是否大于n。

    int temp[3][3] = {{0, 0, 0}, {1, 0, 0}, {0, 0, 1} };
    node mTemp;
    
    void Inite() {
        mTemp.A[0][0] = D;
        mTemp.A[0][1] = C;
        mTemp.A[0][2] = 0;
        for (int i = 1; i < 3; ++i) {
            for (int j = 0; j < 3; ++j) mTemp.A[i][j] = temp[i][j];
        }
    }
    
    void solve() {
        node ans;
        for (int i = 0; i < 3; ++i) ans.A[i][i] = 1;
       // i 是左端点, y 是右端点
        Inite();
        for (int i = 3, x, y; i <= n; i = y + 1) {
            x = P / i;
            y = (x == 0 ? n : P / x);
            if (y > n) y = n; 
            mTemp.A[0][2] = x;
            ans = Fastpow(mTemp, y - i + 1) * ans;
        }
        ll res = ((ans.A[0][0] * (ll)B) % mod + (ans.A[0][1] * (ll)A) % mod + (ll)ans.A[0][2]) % mod;
        cout << res << endl;
    }
  • 相关阅读:
    js简单的下拉选中效果
    简单的JS+HTML+CSS达成图片轮播
    JQ延时对象
    javascript特效----碰壁运动
    PHP---封装
    PHP---面向对象
    PHP----基础
    MySQL查询实例
    JS下拉列表
    MySQL基础操作
  • 原文地址:https://www.cnblogs.com/zgglj-com/p/9473914.html
Copyright © 2011-2022 走看看