• hdu 1757【A Simple Math Problem】


    矩阵相乘

    代码如下:
     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 struct matrix
     5 {
     6     int g[10][10];
     7 }mt;
     8 
     9 int kk,m;
    10 
    11 matrix multi(matrix a,matrix b)
    12 {
    13     matrix ans;
    14 
    15     for(int i = 0;i < 10;i ++)
    16     {
    17         for(int j = 0;j < 10;j ++)
    18         {
    19             int t = 0;
    20             for(int u = 0;u < 10;u ++)
    21             {
    22                 t += a.g[i][u] * b.g[u][j];
    23                 t = t % m;
    24             }
    25             ans.g[i][j] = t % m;
    26         }
    27     }
    28 
    29     return ans;
    30 }
    31 
    32 int solve(int k)
    33 {
    34     matrix temp = mt;
    35     matrix ans;
    36     memset(ans.g,0,sizeof(ans.g));
    37     for(int i = 0;i < 10;i ++)
    38     {
    39         ans.g[0][i] = i;
    40     }
    41 
    42     for(int i = 0;k != 0;i ++)
    43     {
    44         if(k & (1 << i))
    45             ans = multi(ans,temp);
    46         temp = multi(temp,temp);
    47         k = k & (~(1 << i) );
    48     }
    49 
    50     return ans.g[0][9];
    51 }
    52 
    53 int main()
    54 {
    55     while(scanf("%d%d",&kk,&m) == 2)
    56     {
    57         memset(mt.g,0,sizeof(mt.g));
    58         for(int i = 0;i < 10;i ++)
    59         {
    60             int a;
    61             scanf("%d",&a);
    62             mt.g[9 - i][9] = a;
    63             if(i < 9)
    64             mt.g[9 - i][8 - i] = 1;
    65         }
    66 
    67         if(kk < 10)
    68         {
    69             printf("%d\n",kk % m);
    70             continue;
    71         }
    72 
    73         printf("%d\n",solve(kk-9)%m);
    74     }
    75 
    76     return 0;
    77 }
  • 相关阅读:
    apache安装遇到的问题
    babel+gulp实时转码ES6
    highcharts点击切换,不能自适应宽度
    多行文本溢出
    文件上传
    iscroll最后一个列表项无法显示出来
    curry化函数
    zepto中animate方法的使用注意
    js去除中间空格
    JS实现计算任意一个数的各个位数的和
  • 原文地址:https://www.cnblogs.com/Shirlies/p/2518633.html
Copyright © 2020-2023  润新知