HDU5015 233 Matrix(矩阵高速幂)

题目链接

题目大意:

给出nm矩阵,给出第一行a01,
a02, a03 ...a0m (各自是233, 2333, 23333...), 再给定第一列a10, a10, a10, a10,...an0.矩阵中的每一个元素等于左边的加上上面的,求出anm.

解题思路:

先要依据矩阵元素的特征得出相乘的矩阵T, 然后就是求这个矩阵T的m次幂(这里就能够用矩阵高速幂),最后再和给定的第一列所形成的矩阵相乘,就能得到anm。

求矩阵T请參考

代码:

#include <cstdio>
#include <cstring> typedef long long ll; const int N = 15;
const ll MOD = 10000007; ll A[N][N];
int B[N];
int n;
ll m; struct Rec { ll v[N][N]; Rec () { memset (v, 0, sizeof (v));}
void init () { for (int i = 0; i < n + 2; i++)
for (int j = 0; j < n + 2; j++)
v[i][j] = A[i][j];
} Rec operator * (const Rec &a) { Rec tmp;
for (int i = 0; i < n + 2; i++)
for (int j = 0; j < n + 2; j++)
for (int k = 0; k < n + 2; k++)
tmp.v[i][j] = (tmp.v[i][j] + (v[i][k] * a.v[k][j]) % MOD) % MOD;
return tmp;
} Rec operator *= (const Rec &a) { return *this = *this * a;
}
}num; void init () { memset (A, 0, sizeof (A));
for (int i = 0; i < n + 1; i++) {
A[i][0] = 10LL;
A[i][n + 1] = 1LL;
} A[n + 1][n + 1] = 1LL;
for (int i = 1; i < n + 1; i++)
for (int j = 1; j <= i; j++)
A[i][j] = 1LL;
B[0] = 23;
} Rec f(ll m) { if (m == 1)
return num;
Rec tmp;
tmp = f(m / 2);
tmp *= tmp;
if (m % 2)
tmp *= num;
return tmp;
} int main () { while (scanf ("%d%lld", &n, &m) != EOF) { for (int i = 1; i <= n; i++)
scanf ("%d", &B[i]); init();
B[n + 1] = 3;
num.init (); num = f(m); /* for (int i = 0; i <= n + 1; i++) {
for (int j = 0; j <= n + 1; j++)
printf ("%lld ", num.v[i][j]);
printf ("\n");
}*/ ll ans = 0;
for (int i = 0; i <= n + 1; i++)
ans = (ans + (num.v[n][i] * B[i]) % MOD) % MOD;
printf ("%lld\n", ans);
}
return 0;
}

HDU5015 233 Matrix(矩阵高速幂)的更多相关文章

  1. HDU5015 233 Matrix —— 矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-5015 233 Matrix Time Limit: 10000/5000 MS (Java/Others)    Memor ...

  2. 233 Matrix 矩阵快速幂

    In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...

  3. HDU - 5015 233 Matrix (矩阵快速幂)

    In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...

  4. 233 Matrix(矩阵快速幂+思维)

    In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...

  5. HDU 5015 233 Matrix --矩阵快速幂

    题意:给出矩阵的第0行(233,2333,23333,...)和第0列a1,a2,...an(n<=10,m<=10^9),给出式子: A[i][j] = A[i-1][j] + A[i] ...

  6. HDU 4965 Fast Matrix Calculation(矩阵高速幂)

    HDU 4965 Fast Matrix Calculation 题目链接 矩阵相乘为AxBxAxB...乘nn次.能够变成Ax(BxAxBxA...)xB,中间乘n n - 1次,这样中间的矩阵一个 ...

  7. [HDU5015]233 Matrix

    [HDU5015]233 Matrix 试题描述 In our daily life we often use 233 to express our feelings. Actually, we ma ...

  8. hdu 3221 Brute-force Algorithm(高速幂取模,矩阵高速幂求fib)

    http://acm.hdu.edu.cn/showproblem.php?pid=3221 一晚上搞出来这么一道题..Mark. 给出这么一个程序.问funny函数调用了多少次. 我们定义数组为所求 ...

  9. HDU 1575 Tr A(矩阵高速幂)

    题目地址:HDU 1575 矩阵高速幂裸题. 初学矩阵高速幂.曾经学过高速幂.今天一看矩阵高速幂,原来其原理是一样的,这就好办多了.都是利用二分的思想不断的乘.仅仅只是把数字变成了矩阵而已. 代码例如 ...

随机推荐

  1. abap优化工具事务代码: ST05

  2. 国际化之DateFormat、NumberFormat

    之所以在国际化中介绍DateFormat和NumberFormat这两个类,一是因为本身这两个类是地区敏感类,即可用传入Locale对象:二是因为这两个类具有不同的输出模式,而这些模式能在国际化的动态 ...

  3. goldengate 简单配置 oracle to oralce

    做oracle时配置的,goldengate 是同步异构数据库最好的工具.这个是基于oracle to oracle 单向复制 添加增量复制进程   add extract process -- -- ...

  4. sofa-pbrpc 1.1.1 发布,RPC 网络通信库

    https://www.oschina.net/news/77372/sofa-pbrpc-1-1-1 https://www.oschina.net/p/sofa-pbrpc

  5. mojo 默认启用utf-8

    [root@dr-mysql01 ~]# cat f1.pl use Encode; print "验证111\n"; my $d=encode_utf8('验证'); print ...

  6. 做web项目时对代码改动后浏览器端不生效的应对方法(持续更新)

    做web项目时,常常会遇到改动了代码,但浏览器端没有生效,原因是多种多样的,我会依据我遇到的情况逐步更新解决的方法 1.执行的时候採用debug模式,普通情况下使用项目部署button右边那个butt ...

  7. uva 11475 - Extend to Palindrome(KMP)

    option=com_onlinejudge&Itemid=8&category=506&page=show_problem&problem=2470" ta ...

  8. delphi 文件的读取(二进制文件和文本文件)

    http://blog.csdn.net/earbao/article/details/9174033

  9. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  10. 用jsp写注冊页面

    包含单选框.多选框.session的应用,页面自己主动跳转,中文乱码的处理,入门级 对于中文乱码的处理,注意几点:注冊页面数据提交方式为post不能忘了写,页面编码方式为gbk,处理提交信息的doRe ...