233 Matrix

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1190    Accepted Submission(s): 700

Problem Description

In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233333 ... in the same meaning. And here is the question: Suppose we have a matrix called 233 matrix. In the first line, it would be 233, 2333, 23333... (it means a0,1 = 233,a0,2 = 2333,a0,3 = 23333...) Besides, in 233 matrix, we got ai,j = ai-1,j +ai,j-1( i,j ≠ 0). Now you have known a1,0,a2,0,...,an,0, could you tell me an,m in the 233 matrix?
 

Input

There are multiple test cases. Please process till EOF.

For each case, the first line contains two postive integers n,m(n ≤ 10,m ≤ 109). The second line contains n integers, a1,0,a2,0,...,an,0(0 ≤ ai,0 < 231).

 

Output

For each case, output an,m mod 10000007.
 

Sample Input

1 1
1
2 2
0 0
3 7
23 47 16
 

Sample Output

234
2799
72937
 
 
 
 
 

Hint

我们这样看:已知a11 ,a21 ,a31 ,a41  。。。求后面的

a12 = a11 +233;

a22 = a11 + a21 +233;

a32 = a11 + a21 +a31 +233;

a42 = a11 + a21 +a31 +a41 +233;

.........

同理:后面的列也一样:

a13 = a12 +233;

a23 = a12 + a22 +233;

a33 = a12 + a22 +a32 +233;

a43 = a12 + a22 +a32 +a42 +233;

...........

ss所以有矩阵:

233 a11 
a21  a31  a41  ... 3

*

10 1 1 1 1 ... 0
0 1 1 1 1 ... 0
0 0 1 1 1 ... 0
0 0 0 1 1 ... 0
0 0 0 0 1 ... 0
... ... ... ... ... ... ...
1 0 0 0 0 ... 1

=

......................................................................................................................................................

z转载请注明出处:寻找&星空の孩子

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015

#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define LL __int64
#define mod 10000007 LL N,M; struct matrix
{
LL m[][];
};
LL a[]; matrix multiply(matrix x,matrix y)
{
matrix temp;
memset(temp.m,,sizeof(temp.m));
for(int i=; i<N+; i++)
{
for(int j=; j<N+; j++)
{
if(x.m[i][j]==) continue;
for(int k=; k<N+; k++)
{
if(y.m[j][k]==) continue;
temp.m[i][k]+=x.m[i][j]*y.m[j][k]%mod;
temp.m[i][k]%=mod;
}
}
}
return temp;
} matrix quickmod(matrix a,LL n)
{
matrix res;
memset(res.m,,sizeof(res.m));
for(int i=;i<N+;i++) res.m[i][i]=;
while(n)
{
if(n&)
res=multiply(res,a);
n>>=;
a=multiply(a,a);
}
return res;
}
int main()
{
int n,k;
while(scanf("%d%d",&N,&M)!=EOF)
{
a[]=;
a[N+]=;
for(int i=;i<=N;i++)
{
scanf("%d",&a[i]);
} matrix ans;
memset(ans.m,,sizeof(ans.m));
ans.m[][]=;
ans.m[N+][]=;
ans.m[N+][N+]=;
for(int j=;j<=N;j++)
{
for(int i=;i<=j;i++)
{
ans.m[i][j]=;
}
} ans=quickmod(ans,M);//M次幂定位到纵坐标。 LL ant=;
for(int i=;i<N+;i++)//横坐标是N,即,乘以矩阵的N列。
{
ant=(ant+a[i]*ans.m[i][N])%mod;
}
printf("%I64d\n",ant);
}
return ;
}

本来要做新题的,可是遇到不会的了。。。hdu4767 Bell 现在卡在  中国剩余定理,还要好好梳理梳理!

加油!少年!!!

233 Matrix(hdu5015 矩阵)的更多相关文章

  1. ACM学习历程——HDU5015 233 Matrix(矩阵快速幂)(2014陕西网赛)

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

  2. hdu 5015 233 Matrix (矩阵高速幂)

    233 Matrix Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tota ...

  3. hdu 5015 233 Matrix(构造矩阵)

    http://acm.hdu.edu.cn/showproblem.php?pid=5015 由于是个二维的递推式,当时没有想到能够这样构造矩阵.从列上看,当前这一列都是由前一列递推得到.依据这一点来 ...

  4. HDU5015 233 Matrix(矩阵高速幂)

    HDU5015 233 Matrix(矩阵高速幂) 题目链接 题目大意: 给出n∗m矩阵,给出第一行a01, a02, a03 ...a0m (各自是233, 2333, 23333...), 再给定 ...

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

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

  6. [HDU5015]233 Matrix

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

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

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

  8. HDU 5015 233 Matrix(网络赛1009) 矩阵快速幂

    先贴四份矩阵快速幂的模板:http://www.cnblogs.com/shangyu/p/3620803.html http://www.cppblog.com/acronix/archive/20 ...

  9. 233 Matrix 矩阵快速幂

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

随机推荐

  1. 【vue】http-server开启本地服务

    在写前端页面中,经常会在浏览器运行HTML页面,从本地文件夹中直接打开的一般都是file协议,当代码中存在http或https的链接时,HTML页面就无法正常打开,为了解决这种情况,需要在在本地开启一 ...

  2. 常用下载方式的区别-BT下载、磁力链接、电驴

    出处:https://www.jianshu.com/p/72b7a64e5be1 打开 115 离线下载的窗口,看到支持这么多种链接,你都清楚他们是什么原理嘛?接下来我们一个一个说. 一.HTTP( ...

  3. <meta http-equiv="X-UA-Compatible" content="ie=edge">的意思

    <meta http-equiv="X-UA-Compatible" content="ie=edge">vscode创建html文件默认有这串代码 ...

  4. VS 快捷键设置

    工具 --> 选项 --> 环境 --> 键盘

  5. 微信小程序报Cannot read property 'setData' of undefined的错误

    最近在学习微信小程序的开发,让我吐槽的是,都9102年了,怎么还是有有时不能复制,有时不能打中文的bug呢,这个时候,你可以Ctrl+shift+w一下,如果还不行,那就得重启了.. 进入正题吧,刚在 ...

  6. 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 3.Programming Assignment : Planar data classification with a hidden layer

    Planar data classification with a hidden layer Welcome to the second programming exercise of the dee ...

  7. (转)Python3.5 queue模块详解

    原文:https://www.cnblogs.com/CongZhang/p/5274486.html queue介绍 queue是python中的标准库,俗称队列,可以直接import 引用,在py ...

  8. java重点知识

    一.java基本知识点 java是由SUN公司在1995年推出的,在2009年SUN公司又被甲骨文公司收购,所以甲骨文公司获得java版权.其底层是由C语言写的,java分为三个体系: JavaSE, ...

  9. Identity Server4学习系列一

    一.前言 今天开始学习Identity Server4,顺便了解下.Net Core,以便于完善技术栈,最主要的是要跟上.Net的发展潮流,顺便帮助各位整理下官方文档,加上一些我自己对他的理解. 这是 ...

  10. JAVA面试精选【Java基础第三部分】

    上一篇,我们给出了大概35个题目,都是基础知识,有童鞋反映题目过时了,其实不然,这些是基础中的基础,但是也是必不可少的,面试题目中还是有一些基础题目的,我们本着先易后难的原则,逐渐给出不同级别的题目, ...