zoukankan      html  css  js  c++  java
  • hdu 4686 Arc of Dream

    思路:构造矩阵

    a[i]*b[i]=ax*bx*a[i-1]*b[i-1]+ax*by*a[i-1]+ay*bx*b[i-1]+ay*by

    代码如下:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<algorithm>
     6 #include<map>
     7 #define ll __int64
     8 #define mod 1000000007
     9 #define phi 1000000006
    10 using namespace std;
    11 struct ma
    12 {
    13     ll a[5][5];
    14 };
    15 ma mul(ma a,ma b)
    16 {
    17     ma ans;
    18     for(int i=0;i<5;i++)
    19     for(int j=0;j<5;j++){
    20         ans.a[i][j]=0;
    21         for(int k=0;k<5;k++)
    22             if(a.a[i][k]&&b.a[k][j])
    23                 ans.a[i][j]=(ans.a[i][j]+a.a[i][k]*b.a[k][j])%mod;
    24         ans.a[i][j]%=mod;
    25     }
    26     return ans;
    27 }
    28 ma pow(ma a,ll n,ma ans)
    29 {
    30     while(n){
    31         if(n&1) ans=mul(ans,a);
    32         n>>=1;
    33         a=mul(a,a);
    34     }
    35     return ans;
    36 }
    37 int main()
    38 {
    39     ll n,an,s,ab,a,b;
    40     ll a0,b0,ax,ay,bx,by;
    41     ma p,ans,re;
    42     for(int i=0;i<5;i++)
    43         for(int j=0;j<5;j++){
    44                 p.a[i][j]=0;
    45                 ans.a[i][j]=0;
    46         }
    47     p.a[0][0]=p.a[1][0]=p.a[4][4]=1;
    48     while(scanf("%I64d",&n)!=EOF){
    49         scanf("%I64d%I64d%I64d%I64d%I64d%I64d",&a0,&ax,&ay,&b0,&bx,&by);
    50         p.a[1][1]=(ax*bx)%mod;p.a[3][1]=(ax*by)%mod;
    51         p.a[2][1]=(ay*bx)%mod;p.a[4][1]=(ay*by)%mod;
    52         p.a[2][2]=bx%mod;p.a[4][2]=by%mod;
    53         p.a[3][3]=ax%mod;p.a[4][3]=ay%mod;
    54         ans.a[0][1]=a0*b0%mod;ans.a[0][3]=a0%mod;
    55         ans.a[0][2]=b0%mod;ans.a[0][4]=1;
    56         re=pow(p,n,ans);
    57         printf("%I64d
    ",re.a[0][0]%mod);
    58     }
    59     return 0;
    60 }
    View Code
  • 相关阅读:
    tensorflow (七) k-means
    如何提升开发效率-前端技术选型篇
    Spring AOP详解
    Vue.js学习笔记-入门
    拥抱Vue,抛弃jQuery
    HTML+CSS实现审核流程步骤效果
    测试SpringMVC可能出现的线程安全问题
    CGLib动态创建对象和属性
    jconsole观察jvm中线程及GC情况
    Java NIO学习笔记-Selector
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3271084.html
Copyright © 2011-2022 走看看