• 233 Matrix HDU


    题目链接

    题意:第一行矩阵为23,233,2333...给出第一列的矩阵值,求an,m。

    思路:很容易想到矩阵求解

    大概就是这样中间一堆都是1.

    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long
    const int maxn=20;
    const int mod=1e7+7;
    struct Marix{//矩阵
        int mo[maxn][maxn],n;
        Marix(){}
        Marix(int _n){
            n=_n;
            for(int i=0;i<n;i++){
                for(int j=0;j<n;j++) mo[i][j]=0;
            }
        }
    };
    Marix mul(Marix a,Marix b){//矩阵乘法
        Marix res=Marix(a.n);
        for(int i=0;i<a.n;i++){
            for(int j=0;j<a.n;j++){
                for(int k=0;k<a.n;k++){
                    int tmp=(long long )a.mo[i][k]*b.mo[k][j]%mod;
                    res.mo[i][j]=(res.mo[i][j]+tmp)%mod;
                }
            }
        }
        return res;
    }
    Marix powMod(Marix a,int n){//矩阵快速幂
        Marix nul;
        nul=Marix(a.n);
        for(int i=0;i<nul.n;i++){
            nul.mo[i][i]=1;
        }
        while(n){
            if(n&1) nul=mul(nul,a);
            a=mul(a,a);
            n>>=1;
        }
        return nul;
    }
    int main()
    {
        int n,m;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            Marix t1=Marix(n+2);
            t1.mo[0][0]=23;
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&(t1.mo[0][i]));
            }
            t1.mo[0][n+1]=1;
            Marix t=Marix(n+2);
            for(int i=0;i<n+2;i++)
            {
                t.mo[i][i]=1;
                t.mo[n+1][i]=3;
                t.mo[0][i]=10;
            }
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=i;j++)
                {
                    t.mo[j][i]=1;
                }
            }
            for(int i=0;i<n+2;i++)
            {
                t.mo[i][n+1]=0;
            }
            t.mo[n+1][n+1]=1;
            
            Marix ans1=powMod(t,m);
            Marix ans=mul(t1,ans1);
            printf("%d
    ",ans.mo[0][n]);
        }
     } 
  • 相关阅读:
    es6
    ES6
    ES6
    css3
    滚动穿透的6种解决方案【已自测】
    css特效
    css布局
    css布局
    js
    【消灭代办】第5周
  • 原文地址:https://www.cnblogs.com/2462478392Lee/p/13746463.html
Copyright © 2020-2023  润新知