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. EF学习笔记-2 EF之支持复杂类型的实现

    使用过.NET的小伙伴们知道,在我们的实体模型中,除了一些简单模型外,还有一些复杂类型,如几个简单的类型组合而成的类型:而EF除了在实现基本的增删改查之外,也支持复杂类型的实现. 那么如何手动构造复杂 ...

  2. jQuery获取Table某列的值

    在写此篇博文时,发现在以前曾写过<获取DataTable选择第一行某一列值>http://www.cnblogs.com/insus/p/5434062.html . 但是与此篇所说的完全 ...

  3. Python zip() 与 map()的用法

    zip(): 将多个可迭代对象按序取出相同索引的元素(当长度最小的对象为准), 组成一个个元组,并封装在一个可迭代对象中 a = [1, 2, 3, 4] b = [5, 6, 7, 8] c = z ...

  4. 一次Java解析数独的经历

    1. 背景 中午下楼去吃饭,电梯里看到有人在玩数独,之前也玩过,不过没有用程序去解过,萌生了一个想法,这两天就一直想怎么用程序去解一个数独.要去解开一个数独,首先要先了解数独的游戏规则,这样才能找到对 ...

  5. Vue2.5开发去哪儿网App 第五章笔记 上

    1.css动画原理 .fade-enter{ opacity: 0; } .fade-enter-active{ transition: opacity 2s; } .fade-leave-to{ o ...

  6. 11-01 Java 开发工具 eclipse从下载、安装到实际使用的详细教程

     Eclipse和MyEclipse简介 Eclipse是一种可扩展的开放源代码的IDE.起始于1999年4月,由OTI和IBM两家公司的IDE产品开发组组建. 2001年11月,IBM公司捐出价值4 ...

  7. vue教程3-02 vue动画

    vue教程3-02 vue动画 以下代码,已经用包管理器下载好vue,animate <!DOCTYPE html> <html lang="en"> &l ...

  8. 跨站请求伪造(CSRF攻击)理解

    一  概念 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的 ...

  9. npm安装第三方库找不到“cl.exe”问题

    1.安装第三方库时找不到"cl.exe"的解决方法 安装 本地 remix时 出现错误(npm install remix-ide -g) 原因:remix 依赖的 python库 ...

  10. 剑指offer二之替换空格

    一.题目: 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为I love you.则经过替换之后的字符串为I%20love%20You. 二.解题方法: 方法1:采用String ...