HDU - 5015 233 Matrix(杨辉三角/前缀+矩阵快速幂)
233 Matrix
InputThere are multiple test cases. Please process till EOF.
For each case, the first line contains two postive integers n,m(n ≤ 10,m ≤ 10 9). The second line contains n integers, a 1,0,a 2,0,...,a n,0(0 ≤ a i,0 < 2 31).OutputFor each case, output a n,m mod 10000007.Sample Input
- 1 1
- 1
- 2 2
- 0 0
- 3 7
- 23 47 16
Sample Output
- 234
- 2799
- 72937
Hint
- #include<bits/stdc++.h>
- #define MAX 15
- #define MOD 10000007
- using namespace std;
- typedef long long ll;
- ll n,m;
- struct mat{
- ll a[MAX][MAX];
- };
- mat operator *(mat x,mat y)
- {
- mat ans;
- memset(ans.a,,sizeof(ans.a));
- for(int i=;i<=n+;i++){
- for(int j=;j<=n+;j++){
- for(int k=;k<=n+;k++){
- ans.a[i][j]+=x.a[i][k]*y.a[k][j]%MOD;
- ans.a[i][j]%=MOD;
- }
- }
- }
- return ans;
- }
- mat qMod(mat a,ll nn)
- {
- mat t;
- memset(t.a,,sizeof(t.a));
- for(int i=;i<=n+;i++){
- t.a[i][]=;
- for(int j=;j<=i;j++){
- t.a[i][j]=;
- }
- t.a[i][n+]=;
- }
- t.a[n+][n+]=;
- while(nn){
- if(nn&) a=t*a;
- nn>>=;
- t=t*t;
- }
- return a;
- }
- int main()
- {
- int t,i,j;
- while(~scanf("%I64d%I64d",&n,&m)){
- mat a;
- memset(a.a,,sizeof(a.a));
- a.a[][]=;
- for(i=;i<=n+;i++){
- scanf("%I64d",&a.a[i][]);
- }
- a.a[n+][]=;
- a=qMod(a,m);
- printf("%I64d\n",a.a[n+][]);
- }
- return ;
- }
HDU - 5015 233 Matrix(杨辉三角/前缀+矩阵快速幂)的更多相关文章
- HDU 5015 233 Matrix(网络赛1009) 矩阵快速幂
先贴四份矩阵快速幂的模板:http://www.cnblogs.com/shangyu/p/3620803.html http://www.cppblog.com/acronix/archive/20 ...
- HDU - 5015 233 Matrix (矩阵快速幂)
In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...
- HDU 5434 Peace small elephant 状压dp+矩阵快速幂
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5434 Peace small elephant Accepts: 38 Submissions: ...
- HDU 5318——The Goddess Of The Moon——————【矩阵快速幂】
The Goddess Of The Moon Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/ ...
- POJ 3233 Matrix Power Series 【经典矩阵快速幂+二分】
任意门:http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K To ...
- hdu 4549 M斐波拉契 (矩阵快速幂 + 费马小定理)
Problem DescriptionM斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 ) 现在 ...
- HDU 5015 233 Matrix
题意:给定一个矩阵的第0列的第1到n个数,第一行第1个数开始每个数分别为233, 2333........,求第n行的第m个数. 分析: 其实也没那么难,自己想了半天还没往对的方向想,m最大1e9,应 ...
- hdu 5015 233 Matrix (矩阵高速幂)
233 Matrix Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Tota ...
- hdu 5015 233 Matrix(构造矩阵)
http://acm.hdu.edu.cn/showproblem.php?pid=5015 由于是个二维的递推式,当时没有想到能够这样构造矩阵.从列上看,当前这一列都是由前一列递推得到.依据这一点来 ...
随机推荐
- mvn deploy
mvn:deploy在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享. 以将ojdbc14传到nexus中的thirdparty为例 一 配置 ...
- 九度OJ 1179:阶乘 (循环)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5149 解决:1523 题目描述: 输入n, 求y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2!+4!+...p!(p是 ...
- mysqldump的--master-data参数
mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和posit ...
- MySQL修改配置 区分大小写
在使用mysql的时候,数据库名,表名,字段名等有大小写的区分,这个可以通过配置文件设置.如果设置了严格区分大小写,在访问表的时候没有注意到表名的大小写,将会报出表不存在的错误.下面是修改配置文件: ...
- maven 手动安装本地jar包
1.需要知道groupId.artifactId.version通过 cmd命令行执行 mvn install:install-file ,比如安装sigar.jar如下: mvn install:i ...
- ASP.Net .Net4.0 HTTP 错误 404.17 - Not Found
源:ASP.Net .Net4.0 HTTP 错误 404.17 - Not Found 用了网上很多方法,最后是用这个网友的方法解决的,在此做个记录. VS2010编写WebService与在IIS ...
- American Heritage usaco
基础题,主要思路是找到根,然后分别递归即可: #include<iostream> #include<cstring> #include<string> #incl ...
- mybatis中xml字段空判断及模糊查询
由于业务特殊的查询需求,需要下面的这种查询,一直感觉模糊不清,本地测试一下顺便做个总结 贴一段xml代码,如下: <if test="receivedName != null and ...
- BZOJ 1726 [Usaco2006 Nov]Roadblocks第二短路:双向spfa【次短路】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1726 题意: 给你一个无向图,求次短路. 题解: 两种方法. 方法一: 一遍spfa,在s ...
- ES搜索排序,文档相关度评分介绍——Vector Space Model
Vector Space Model The vector space model provides a way of comparing a multiterm query against a do ...