hdu 5015(矩阵快速幂z )

CSP历年真题201503-1-图像旋转(C/C++) 一、问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 二、输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。 三、输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 四、... 阅读详情

a[i][j] = a[i-1][j] + a[i][j-1]

m.特别大,可以计算出第一列,找出规律,构建一个特殊的矩阵,运用快速幂

设矩阵x:

1 0 0 0 ... |10 1 

1 1 0 0 ... |10 1

1 1 1 0 ...  |10 1

1 1 1 1 ...   |10 1

......      ...  | ...

0 0 0 0 ... |10 1

0 0 0 0 ... | 0 1


用最后两行来实现 233.....,求出x*第一列 = 第二列 。

所以最终答案 = x ^ m * 第一列  (矩阵的运用很灵活)


#include <cstdio>
#include <cstring>
#define mod 10000007
typedef long long ll;
int n;
struct mat
{
    ll q[16][16];
    mat()
    {
        memset(q,0,sizeof(q));
    }
};

mat mat_mul(mat a,mat b)
{
    mat re;
    for(int i=0; i<=n; i++)
    {
        for(int j=0; j<=n; j++)
        {
            for(int k=0; k<=n; k++)
            {
                re.q[i][j]+=a.q[i][k]*b.q[k][j];
                re.q[i][j]%=mod;
            }
        }
    }
    return re;
}

mat mat_pow(mat m,int num)
{
    mat re;
    mat tmp=m;
    for(int i=0; i<=n; i++)
    {
        re.q[i][i]=1;
    }
    while(num)
    {
        if(num&1)
        {
            re=mat_mul(re,tmp);
        }
        tmp=mat_mul(tmp,tmp);
        num>>=1;
    }
    return re;
}

int main()
{
    int m;
    while(scanf("%d%d",&n,&m) != EOF)
    {
        mat p,orz;
        for(int i = 0; i < n; i++)
            scanf("%I64d",&p.q[i][0]);
        p.q[n][0] = 23;
        n++;
        p.q[n][0] = 3;

        for(int i=0; i<n-1; i++)
        {
            for(int j=0; j<=i; j++)
            {
                orz.q[i][j]=1;
            }
            orz.q[i][n-1]=10;
            orz.q[i][n]=1;
        }
        orz.q[n][n] = orz.q[n-1][n] = 1;
        orz.q[n-1][n-1] = 10;

        mat tmp = mat_pow(orz,m);
        mat ans= mat_mul(tmp,p);

        printf("%I64d\n",ans.q[n-2][0]);
    }
    return 0;
}













NTscan扫描工具 ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。 立即下载

相关推荐

数学建模国赛B题保姆级攻略:从选题到代码实现的完整流程(2024最新版)

本文提供2024年数学建模国赛B题的保姆级实战攻略,涵盖从赛题解构、模型构建到算法实现与论文撰写的完整流程。文章详细解析了如何快速抓住问题核心、建立数学模型、进行算法求解与结果可视化,并分享了高效团队协作与专业论文写作的关键技巧,助力参赛者系统性地完成从选题到代码实现的全过程。

weixin_29089057的博客 138

HDU - 5015 233 Matrix —— 矩阵快速幂

题意: 矩阵第0行第一个数是233,第二个数是2333,第三个数是23333 ai,j = a i-1,j +a i,j-1,给第0列的数,计算a i,j 思路: 行数很少,只有10 先考虑第0行,递推式为a0,j = 10*a0,j-1 + 3 a0,0的位置可以看作23 然后很容易得到 ai,j=ai,j-1+ai-1,j-1+ai-2j-1+...10*a0,j-1+3 最多有1...

Lngxling的博客 333

英飞凌TC3XX芯片---------CAN模块详解

CAN 总线是一种广泛应用于汽车、工业控制和其他领域的串行通信协议,CAN 英文名称:Controller Area Network。最初由德国的 Bosch 公司开发,用于汽车电子系统之间的通信。CAN 总线具有高可靠性、抗干扰能力强和实时性好等特点,因此被广泛应用于需要可靠数据传输的领域。CAN2.0B 协议中的 CAN 最多支持 29 位 ID,但是网络架构中使用的一般是 11 位的标准帧 ID。如下图是标准 CAN FD 帧数据结构:关于 CAN 协议相关内容,本文不作阐述。

sky的博客 3668

HDU 5015(矩阵快速幂)

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

Twilightuse93的专栏 585

GPT注册与使用全流程详解:从零到一的实战指南

本文详细介绍了GPT的注册与使用全流程,从认识GPT作为智能对话助手开始,到注册前的设备与环境准备、手把手完成账号注册、首次使用指南以及进阶使用技巧。文章还涵盖了安全使用与注意事项,帮助用户从零开始高效利用GPT提升工作效率和内容创作能力。

weixin_33843409的博客 388

UWB灵犀遥控器方案介绍

UWB灵犀指向遥控器的技术原理和方案介绍

xiongdauwb的博客 3898

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

题目链接:点击查看 题目大意:初始化:第一行依次为233,2333,23333....第一列依次为a0,a1,a2....(题目中会给出),再给出递推公式:,求矩阵中第n行m列的数字是多少 题目分析:因为给出的列数最高能到1e9,所以肯定不能暴力模拟打表,如果暴力打表连数组都开不起来,如果滚动数组模拟,会爆时间,因为这个题目给出了递推式,所以可以向矩阵快速幂的角度出发,一开始给出的是第一列的数...

Falcon的博客 590

LVGL 组件对齐方式说明

本文说明 LVGL(以 v8 为例)中常用的 lv_align_t对齐选项的含义与用法,对应界面设计工具里下拉列表中的以及等命名。

摸鱼专家 130

hdu5015

//暴力绝对不行,只能用矩阵ksm /*ksm思想:1.第m列由第m-1列 *10+3得。把一列看成两边的两列 2.根据递推公式。即可列出中间矩阵 */ #include<bits/stdc++.h> using namespace std; const int maxn=15; typedef long long ll; ll mod=1e7+7; ll n,m,a[maxn]; typedef struct jz{ ll m[maxn][maxn]; }jz; jz m...

weixin_50904510的博客 199

半导体设备系列(2) 半导体设备与工厂控制仿真器Demo编写

基于C/S架构用C++编写半导体设备仿真器与工厂控制仿真器

追赶时代的博客 610

机器人多学科仿真软件:Webots_(19).Webots的插件与扩展开发

通过上述步骤,您可以开发和使用Webots的插件、扩展和接口,以增强其功能和灵活性。

kkchenjj的博客 923

hdu-5015-233 Matrix-矩阵 (矩阵快速幂)(dp)

渐渐有点理解矩阵的含义了 多刷多思考! 主要是利用矩阵来转移状态,通过矩阵乘法来得出结果,要先推出矩阵的转移形式 之后的乘法和快速幂就很套路了。

hi_just_do_it的博客 339

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hdu 5015 233 Matrix 矩阵快速幂 2014 ACM/ICPC Asia Regional Xi'an Online

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015 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 me

要去相信,没有到不了的明天 1188

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDU - 5015 233 矩阵快速幂(构造矩阵)

233 Matrix Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 4010Accepted Submission(s): 2271 Problem Description In our daily life we ...

pxlsdz的博客 461

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

Think: 1知识点:矩阵快速幂 2题意:定义一个233矩阵,第一行形如233, 23333, 233333, 233…(即a[0][1] = 233, a[0][2] = 2333,a[0][3] = 23333, a[0][4] = 233…),现输入n列的第一个数(即a[1][0], a[2][0], … , a[n][0]),询问a[n][m](n ≤ 10,m ≤ 1e9)的值 3

BlessingXRY的博客 556

hdu-5015(矩阵快速幂)

233 Matrix Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K Problem Description In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23

AC之路 491

233 Matrix(hdu5015 矩阵)

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 ofte

寻找&星空の孩子 845

hdu- 5015 233 Matrix

/**      本题是一个10 * n 的矩阵     a[0][0] = 233  1     a[1][0]    a[1][1]     a[2][0]    a[2][2]     a[3][0]    a[3][3]     a[4][0]    a[4][1]     .     .     .     .                        

风儿-zsj的专栏 509

矩阵(matrix)应用大总结(二)HDU1588+HDU 5950+HDU 5015

聪神选的题系列……         这一系列可以说是数学系列咯,正好补一补。         这几道题目都是矩阵的题目,本来呢觉得自己之前也学过见过挺多矩阵的,还自己做过总结,做这些题目应该没什么大问题,但是还是感觉有很多新东西。

alpc_qleonardo 652

HDU 5015 233 Matrix

矩阵快速幂。 首先得到这个式子: 依据这个,就可以构造矩阵。 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<algorithm> using namespace std; long long con...

weixin_34248705的博客 75

hdu 5015 推导+矩阵快速幂

题目链接:https://vjudge.net/problem/HDU-5015 转自:https://blog.youkuaiyun.com/dragon60066/article/details/60339236 题意:有一个矩阵横排第一行初始是0,233,2333,23333…,然后给出计算公式a[i][j] = a[i - 1][j] + a[i][j - 1],然后给出了n和m和第一列的各值要求计算...

A 207

hdu5015——233 Matrix(矩阵快速幂)

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 ca

Beyond the Sora 888

hdu5015(矩阵优化)

题意:给一个n*m的矩阵,a[0][0--n]、a[0--n][0]已知,a[i][j] = a[i-1][j] + a[i][j-1]。 思路分析:暴力会超时,所以可以用矩阵优化,时间复杂度为O(12*12*12*log(10^9))。注意到每一列都可以通过前一列递推得到,所以构造举证temp,使得A(i)*temp = A(i+1),现在要求第m列,A(0)*(temp^m) = A(m),

u013509299的专栏 1157

HDU5015 233 Matrix(矩阵快速幂)

题目: 233 Matrix Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2180    Accepted Submission(s): 1274 Problem Description In ou

riba2534的博客 594

HDU 5015解题报告

233 Matrix Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1169    Accepted Submission(s): 687 Problem Description In our daily li

jhljx的专栏 471
上一篇: hdu 5011(博弈)
下一篇: hdu 5014(贪+位运算)
Tyuio28
博客等级 码龄11年 12粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值