• hdu 2256 Problem of Precision


     

     

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 #define mod 1024
     6 #define ll long long
     7 #define nn 2
     8 using namespace std;
     9 struct rec{
    10     ll v[nn][nn];
    11     rec(){memset(v,0,sizeof v);}
    12 };
    13 rec mul(rec a,rec b){
    14     rec ans;
    15     ll sum;
    16     for(int k=0;k<nn;k++){
    17        for(int i=0;i<nn;i++){
    18           for(int j=0;j<nn;j++){
    19               sum=a.v[i][k]*b.v[k][j]%mod;
    20               ans.v[i][j]=(ans.v[i][j]+sum)%mod;
    21           }
    22        }
    23     }
    24     return ans;
    25 }
    26 rec pow(rec a,int n){
    27     if(n==1) return a;
    28     rec ans=pow(a,n/2);
    29     ans=mul(ans,ans);
    30     if(n&1) return mul(ans,a);
    31     else return ans;
    32 }
    33 int t,n;
    34 int gao(rec a){
    35     return (((a.v[0][0]*5%mod+a.v[0][1]*2%mod)*2-1)%mod+mod)%mod;
    36 }
    37 int main(){
    38     scanf("%d",&t);
    39     while(t--){
    40         scanf("%d",&n);
    41         rec a;
    42         if(n==1) {cout<<9<<endl;continue;}
    43         a.v[0][0]=5,a.v[0][1]=12;
    44         a.v[1][0]=2,a.v[1][1]=5;
    45         a=pow(a,n-1);
    46         printf("%d
    ",gao(a));
    47     }
    48     return 0;
    49 }
    hdu2256
  • 相关阅读:
    二次识别
    IPC
    HW
    数据库异常:SQL Error: 0, SQLState: S0022
    mysql 分页查询
    [Err] 1248
    名句摘抄
    理智向左 疯狂向右
    kindle怎么导入电子书
    设置 myeclipse 编码格式
  • 原文地址:https://www.cnblogs.com/wonderzy/p/3409116.html
Copyright © 2020-2023  润新知