http://acm.hdu.edu.cn/showproblem.php?pid=5015

题意:第一行给出了 233 2333 23333 233333 ......

也给出了第一列的数 ,让你计算 第n行m列的值       a[i][j] = a[i-1][j] + a[i][j-1] ;

题解:我们要先预处理行,然后对列进行快速幂,这样就可以很快计算出结果;

/** 本题是一个n * m的矩阵(m比较大)a[0][1] = 233  2333a[1][0]    a[1][1]a[2][0]    a[2][1]a[3][0]    a[3][1]a[4][0]    a[4][1]....                                           { 10 0 0 0 1 }.                                           { 1  1 0 0 0 }{2333,a[1][1],a[2][1],a[3][1],.....,3} =    { 1  1 1 0 0 }*({233,a[1][0],a[2][0],a[3][0],.....,3} 的转置矩阵){ 1  1 1 1 0 }{ 0  0 0 0 1 }
**/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define mod 10000007
typedef __int64 LL;
LL a[20];
int n,m;
struct Z{LL m[13][13];
}ret,p;
void init(){memset(ret.m,0,sizeof(ret.m));memset(p.m,0,sizeof(p.m));for(int i = 0;i <= n+1;i++)ret.m[i][i] = 1;p.m[0][0] = 10;p.m[0][n+1] = 1;for(int i = 1;i <= n;i++)for(int j = 0;j <= i;j++)p.m[i][j] = 1;p.m[n+1][n+1] = 1;
}
Z operator * (Z a,Z b){Z c;memset(c.m,0,sizeof(c.m));for(int i = 0;i <= n + 1;i++)for(int k = 0;k <= n + 1;k++)if(a.m[i][k])for(int j = 0;j <= n + 1;j++)c.m[i][j] = (c.m[i][j] + a.m[i][k] * b.m[k][j]) % mod;return c;
}
Z Pow(int k){init();while(k){if(k&1) ret = ret * p;p = p * p;k >>= 1;}return ret;
}
int main(){while(cin >> n >> m){Z r;memset(a,0,sizeof(a));a[0] = 233;for(int i = 1;i <= n;i++)cin >> a[i];a[n+1] = 3;r = Pow(m);LL ans = 0;for(int i = 0;i <= n+1;i++)ans = (ans + r.m[n][i] * a[i] )% mod;cout << ans << endl;}
}

hdu- 5015 233 Matrix相关推荐

  1. HDU 5015——233 Matrix

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

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

    题目链接:点击查看 题目大意:初始化:第一行依次为233,2333,23333....第一列依次为a0,a1,a2....(题目中会给出),再给出递推公式:,求矩阵中第n行m列的数字是多少 题目分析: ...

  3. 233 Matrix HDU - 5015

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

  4. 【HDU - 5015 】233 Matrix (矩阵快速幂)

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

  5. [矩阵乘法/快速幂专题]Arc of Dream,Recursive sequence,233 Matrix,Training little cats

    矩阵快速幂习题 复习矩阵乘法及快速幂模板 乘法模板 快速幂模板 T1:Arc of Dream 题目 题解 code T2:Recursive sequence 题目 题解 code T3:233 M ...

  6. HDU5015 233 Matrix

    题目的意思是有一个叫做233 Matrix的矩阵. 给定第一行元素a(0, 1) = 233, a(0, 2) = 2333, a(0, 3) = 23333, ..., a(0, n) = 10 * ...

  7. 【矩阵快速幂】233 Matrix HDU - 5015

    Think: 1知识点:矩阵快速幂 2题意:定义一个233矩阵,第一行形如233, 23333, 233333, 233-(即a[0][1] = 233, a[0][2] = 2333,a[0][3] ...

  8. Hdu5015 233 Matrix矩阵

    每一列能由前一列推过来,构造一个(n+2)*(n+2)的矩阵B,第k列 就等于  所构造的第一列A*B^(k-1) 比如 233                            10    10 ...

  9. hdu 6400 Parentheses Matrix思维

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6400 这题有坑.. hw的最小值小于等于4是一种情况,否则是另外一种情况. 第一种情况可以 ((((( ...

最新文章

  1. 7.20套娃(tao)
  2. 使用SQL Server分析服务定位目标用户
  3. (19)FPGA乒乓操作
  4. Scikit-learn:数据预处理Preprocessing data
  5. 设置多行的Table高度为100%,并在最后一行中加入iframe
  6. Julia: eval的一些用法
  7. 信号怎么用matlab分类,使用迁移学习做信号分类
  8. 【老生谈算法】matlab实现遗传算法优化源码——遗传算法
  9. 如何编译Linux内核源码?
  10. itil 容量管理流程_ITIL 4管理实践之服务管理实践概述
  11. 基于java SSM框架的竞拍系统拍卖网设计
  12. 密码学算法——RSA
  13. 绘制网络组建拓扑图方法分享
  14. Python覆盖率框架Coverage初探
  15. centos7-docker部署私有镜像仓库(docker-registry)
  16. S700K表示电路速查【铁路信号技术专栏】转自微信公众号铁路信号技术交流
  17. linux输入法大小,推荐linux下的输入法--五笔+拼音
  18. html5 页面拨打电话,发短信,发邮件
  19. 推荐几个网盘搜索工具,大大提高你的找资源效率
  20. 技术牛人在阿里内网的公开信:“王坚,你为什么要放弃”

热门文章

  1. 神策合肥研发中心携手安徽开发者社区,深入交流共促行业发展
  2. 技术内参 | 数据分析,如何解决精度丢失的问题?
  3. 捞月狗签约神策数据 数据赋能打造全球玩家生态圈
  4. css元素居中方法归纳
  5. 关于epoll中的read函数说明
  6. laravel的一个简单文件博客项目katana的使用
  7. Memcached服务器的图形化管理工具
  8. 写在《30天自制操作系统》上市之前
  9. Android Textview控件
  10. PHP获取当前页面的URL