• poj3734矩阵快速幂


    挑战上面的题目,感觉脑洞很大

    分别找红蓝个数全为偶,全为奇,一奇一偶的个数ai,bi,ci

    转移矩阵是| 2 1 0 |,是一个对称矩阵(会不会有什么联系。)

                  | 2 2 2 |

                  | 0 1 2 |

    #include<map>
    #include<set>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<cstdio>
    #include<iomanip>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define pi acos(-1)
    #define ll long long
    #define mod 10007
    #define ls l,m,rt<<1
    #define rs m+1,r,rt<<1|1
    #pragma comment(linker, "/STACK:1024000000,1024000000")
    
    using namespace std;
    
    const double g=10.0,eps=1e-9;
    const int N=10+5,maxn=1<<10+5,inf=0x3f3f3f3f;
    
    struct Node{
       ll row,col;
       ll a[N][N];
    };
    Node mul(Node x,Node y)
    {
        Node ans;
        ans.row=x.row,ans.col=y.col;
        memset(ans.a,0,sizeof ans.a);
        for(ll i=0;i<x.row;i++)
            for(ll j=0;j<x.col;j++)
                for(ll k=0;k<y.col;k++)
                    ans.a[i][k]=(ans.a[i][k]+x.a[i][j]*y.a[j][k])%mod;
        return ans;
    }
    Node quick_mul(Node x,ll n)
    {
        Node ans;
        ans.row=x.row,ans.col=x.col;
        memset(ans.a,0,sizeof ans.a);
        for(ll i=0;i<ans.col;i++)ans.a[i][i]=1;
        while(n){
            if(n&1)ans=mul(ans,x);
            x=mul(x,x);
            n>>=1;
        }
        return ans;
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
     //   cout<<setiosflags(ios::fixed)<<setprecision(2);
        ll n,t;
        cin>>t;
        while(t--){
            cin>>n;
            Node A;
            A.row=3,A.col=3;
            memset(A.a,0,sizeof A.a);
            A.a[0][0]=2,A.a[0][1]=1,A.a[0][2]=0;
            A.a[1][0]=2,A.a[1][1]=2,A.a[1][2]=2;
            A.a[2][0]=0,A.a[2][1]=1,A.a[2][2]=2;
            A=quick_mul(A,n);
            Node B;
            B.row=3,B.col=1;
            B.a[0][0]=1,B.a[1][0]=0,B.a[2][0]=0;
            B=mul(A,B);
            cout<<B.a[0][0]%mod<<endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/acjiumeng/p/6882870.html
Copyright © 2020-2023  润新知