TZOJ7929: Matrix Power Series(矩阵k次幂前缀和模板、二分优化)

POJ 3233——Matrix Power Series(矩阵快速幂) 第一次在博客里发题解(被水淹没不知所措)。。。 题目:POJ 3233 Matrix Power Series 题目大意:这道题不用翻译也能看懂,有一个n*n的矩阵,给出一个k,求S=(A+A^2+A^3+…+A^k)%m。其中n ≤ 30,k ≤ 10^9,m<104。 题目分析:这道题首先要知道矩阵乘法(不知道的请移步百度),然后一看数据范围就知道必须要用快速幂。但是这道题又特坑,... 阅读详情

TZOJ7929: Matrix Power Series

题目传送门

描述

Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak.

输入

The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 10^9) and m (m < 10^4). Then follow n lines each containing n nonnegative integers below 32,768, giving A’s elements in row-major order.

输出

Output the elements of S modulo m in the same way as A is given.

样例输入
2 2 4
0 1
1 1
样例输出
1 2
2 3
解题思路

很明显这是一道矩阵k次幂前缀和模板题目,然而k达到1e9,如果直接使用矩阵快速幂求解肯定会超时,所以考虑进行二分优化。参考。

代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define IOS ios::sync_with_stdio(0), cin.tie(0)
const ll N = 1e1 * 3 + 5;
struct node {
    ll a[N][N];
    node() { memset(a, 0, sizeof a);}
};
ll n, kk, mod;
node mul(node x, node y) {
    node z;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            for (int k = 0; k < n; ++k) {
                z.a[i][j] = (z.a[i][j] + x.a[i][k] * y.a[k][j]) % mod;
            }
        }
    }
    return z;
}
node add(node x, node y) {
    node z;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            z.a[i][j] = (x.a[i][j] + y.a[i][j]) % mod;
        }
    }
    return z;
}
node fqpow(node a, ll b) {
    node res;
    for (int i = 0; i < n; ++i) {
        res.a[i][i] = 1;
    }
    while (b) {
        if(b & 1) res = mul(res, a);
        a = mul(a, a);
        b >>= 1;
    }
    return res;
}
node erfen(node a, ll x) {
    if(x == 1) return a;
    node res;
    for (int i = 0; i < n; ++i) {
        res.a[i][i] = 1;
    }
    res = add(res, fqpow(a, x / 2));
    res = mul(res, erfen(a, x / 2));
    if(x & 1) res = add(res, fqpow(a, x));
    return res;
}
void solve() {
    cin >> n >> kk >> mod;
    node A;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            cin >> A.a[i][j];
        }
    }
    node ans = erfen(A, kk);
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if(j) cout << " ";
            cout << ans.a[i][j];
        }
        cout << endl;
    }
}

int main( ){
    IOS;
//    ll t; cin >> t;
    ll t = 1;
    while (t--) solve();
    return 0;
}
C++信息竞赛NOIP各种必备实用模板(逆元,费马小定理,扩展欧几里得,快速幂,卡常,欧拉函数,组合数。。。。。。) 为什么会有此博客? 此博客是为了博主复习时方便地背模板。 博主在代码部分都是默写的,所以可能会有点小错误,见谅。 前半部分重点关注于数论。如果觉得很好的朋友可以收藏了慢慢看 卡常必备!快速读入 int read() { int s=0,f=1;char a=getchar(); while(a<'0' || a>'9') { if(a=='-') f... 阅读详情

相关推荐

Edge浏览器IE模式全攻略:从企业应用到老旧网站兼容(含常见问题解答)

本文详细解析了微软Edge浏览器的IE模式,这是解决企业遗留系统与老旧网站兼容性问题的关键技术。文章从核心原理出发,提供了从个人用户临时启用到企业级组策略部署的完整配置指南,并深入探讨了文档模式调优、ActiveX控件处理等高级技巧,最后汇总了常见问题排查与安全实践,帮助用户高效平衡兼容性与现代化浏览体验。

weixin_29227425的博客 609

Matrix Power Series(矩阵加速,矩阵套矩阵)

题目 描述 给定矩阵AAA,求矩阵S=A1+A2+…+AkS=A^1+A^2+…+A^kS=A1+A2+…+Ak,输出矩阵,SSS矩阵中每个元都要模mmm。 数据范围:n(n≤30),k(k≤109),m(m&lt;104)n (n ≤ 30) , k (k ≤ 10^9) ,m (m &lt; 10^4)n(n≤30),k(k≤109),m(m<104) 输入 输入三个正...

zyz_bz的博客 859

win2012 r2 + IIS8.5 伪静态设置脚本映射

win2012 r2 + IIS8.5 伪静态设置脚本映射,网站用的.net fromwork 2.0 ,应用程序池设置了32位支持

xueking87的专栏 3240

Matrix Power Series 题解

类似于一般的快速幂求法,在求矩阵快速幂里的ans数组要先赋值成单位矩阵,其他的和快速幂一样,因为不能直接返回数组,所以这个用一个结构体表示矩阵(一开始形参不小心写了二维数组就错了,救命)。一般来说用等比数列求和来计算,但是这里是矩阵没法求1-A和1-A^k,所以用分治的方式去求,其中需要求矩阵的乘方,用矩阵快速幂求解。然后用分治的方式求等比数列的和。n为奇数:f[n] = f[n >> 1] + a ^ n;n为偶数:f[n] = f[n >> 1]题意是对一个n*n的矩阵,求上述式子的结果。

crisp_chifan的博客 215

AI图像识别在临电配电箱安全检测中的应用与实践

计算机视觉与AI图像识别技术正逐步改变传统工业检测方式。通过深度学习模型如YOLOv5和ResNet,系统能自动识别设备元件并分析其状态,大幅提升检测效率和准确性。这种技术特别适用于需要严格遵循行业标准的场景,如临电配电箱的安全检测。将《施工现场临时用电安全技术规范》等条文转化为可量化的算法,AI系统能自动检查PE线连接、漏保功能等关键项目。实际应用表明,此类解决方案可使电气事故率下降90%以上,同时检测耗时缩短80%,为工地安全提供了智能化保障。

weixin_29042035的博客 328

基于Autoware制作高精地图(一)

基于Autoware制作高精地图(一) ​开始进入正题,也是最近在忙的一件事,制作高精地图。 高精地图的制作大概分为以下四个流程(不一定完全正确): 1.构建点云地图; 2.点云地图标注; 3.制作OpenDrive地图; 4.地图存储索引。 这篇文章主要讲解如何构建点云地图。 首先我们要有一段自己录制的激光雷达点云数据,这里推荐大家采用Velodyne16线激光雷达,因为这里我们构建的点云底图是三维的,而采用Velodyne而不是速腾聚创(rslidar)等其他品牌的原因是Autoware里面有一个选项是

weixin_44570248的博客 7797

LintCode 947: Matrix Power Series (矩阵快速幂经典题)

Matrix Power Series 中文English Given a n × n matrix A and a positive integer k and a positive integer m, find the sum S = A + A^2 + A^3 + … + A^k,return the elements of S modulo m Example Example 1: ...

roufoo的博客 243

在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统

智能建筑能效优化是现代建筑管理的重要组成部分,旨在通过智能化手段降低能源消耗、减少碳排放并提高居住舒适性。通过Simulink进行智能建筑能效优化仿真,可以验证控制策略的有效性、优化系统设计并降低开发成本。以下是如何在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的智能建筑能效优化仿真。该系统能够模拟复杂的建筑环境,验证能效优化策略的有效性,并通过优化设计提高建筑的能源利用效率和居住舒适性。

xiaoheshang_123的博客 138

Matrix Power Series

【代码】Matrix Power Series。

QwQ5566的博客 210

MicroCap声学仿真介绍(二)-创建声学仿真元件

声学库里包含孔、管、障板辐射器等器件,我们只需要按照仿真的需求,将声学库里的器件排列好,输入参数,用线连接起来即可。这里我们用D指代孔的直径,L指代孔的长度,N代表孔的数量。26.在弹出的界面中做如下设置:需要先在右面的选框里找到对应的项,然后右键Add Part,再之后就如下设置。3.在弹出的界面中,选择“Macro file(.mac)”,并点击右上角的“OK”下面就以声学仿真中常见的“孔”来做示例,跟大家一块演示一下宏程序的新建。10.在上图中“Value”中填入“R”,然后点击左边的“OK”按钮;

山无忧的博客 2199

AE-扭曲-变形-弧

一些AE效果的着色器实现记录

What_can_you_do的博客 1175

Matrix Power Series(矩阵快速幂,二分法/构造矩阵套矩阵)

传送门 题意: 思路: 方法一:(二分) 分析: 奇偶分类讨论: 1.代码: #include <iostream> #include <cstdio> #include <string> #include <cstring> #include <stdlib.h> #include <math.h> #include <ctype.h> #include <queue> #include <map&gt

木静音yy的博客 345

Meta新开源多语种语音基座Omnilingual ASR

Meta FAIR 团队最近祭出了,这不仅仅是对 MMS (Massively Multilingual Speech) 的简单升级,而是一次从“多任务学习”向“上下文学习(In-Context Learning)”的范式跃迁。通过将 Wav2Vec 2.0 编码器扩展至 70 亿参数,并引入 LLM 风格的 Decoder,Omnilingual ASR 不仅原生支持 1600+ 种语言,更具备了类似 GPT 的“零样本”扩展能力——只需给出几个音频-文本对,即可解锁从未见过的语言。

kakaZhui的博客 146

POJ 3233 Matrix Power Series 动态规划(矩阵的幂)

给出一个矩阵A,输出矩阵B的每一项对M取余数的值。

qq_53038151的博客 235

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Matrix Power Series(矩阵快速幂-矩阵乘法)

Matrix Power Series(矩阵快速幂-矩阵乘法) judge:POJ 3233 source:POJ Monthly–2007.06.03, Huang, Jinsong Time Limit: 3000MS Memory Limit: 131072K Description Given a n×nn × nn×n matrix AAA and a positive intege...

画船听雨眠 992

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Matrix Power Series(矩阵求求次方和)

Matrix Power SeriesTime Limit: 3000MS Memory Limit: 131072KTotal Submissions: 26209 Accepted: 10782DescriptionGiven a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak.Inp...

xiaoxiede_wo的博客 315

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

第三章,矩阵,05-逆矩阵

第三章,矩阵,05-逆矩阵定义逆矩阵的唯一性非奇异矩阵矩阵可逆的判定伴随矩阵矩阵可逆的判定定理矩阵可逆的推论逆矩阵性质 定义 对于n阶矩阵A,如果有一个n阶矩阵B,使得 AB=BA=EAB=BA=EAB=BA=E 则称矩阵A为可逆矩阵,而矩阵B为A的逆矩阵,记B=A−1B=A^{-1}B=A−1 逆矩阵的唯一性 证明: 若B和C都是A的逆矩阵,则: AB=BA=E,AC=CA=EAB=BA=E,AC=CA=EAB=BA=E,AC=CA=E 那么: B=BE=B(AC)=(BA)C=EC=CB=BE=B(AC

qq_17065591的博客 975

Matrix Power Series----矩阵乘法(二分)

题目:http://poj.org/problem?id=3233 A+A^2+A^3……+A^k 如果k是偶数的话,原式=(I+A^k/2)(A+A^2……A^k/2)。 如果k是奇数的话,原式=(1+A^(k/2+1))(A+A^2……+A^k/2)+A^(k/2+1)。 我是用数组直接实现的,比较麻烦,速度比较慢,1000+ms。 下面是我的代码: #include int

wk476855的专栏 1492

POJ 3233 Matrix Power Series (矩阵乘法)

Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 11954   Accepted: 5105 Description Given a n × n matrix A and a positive integer k, find...

weixin_34310369的博客 167

POJ 3233 Matrix Power Series(矩阵快速幂)

Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 24545   Accepted: 10186 Description Given a n × n matrix A and a positive integer k, f

yjt9299的博客 264

Matrix Power Series【矩阵乘法】

Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 35006 Accepted: 14029 Description Given a n×nn × nn×n matrix A and a positive integer k, find the sum S=A+A2+A3+…+AkS = A + A2 + A3 + … + AkS=A+A2+A3+…+Ak. Input The input contains exactly one

在人间贩卖声音 241

Matrix Power Series(构造矩阵+矩阵快速幂)

Matrix Power Series Time Limit : 6000/3000ms (Java/Other)   Memory Limit : 262144/131072K (Java/Other)Problem Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 ...

残阳止水 2643

2020牛客国庆集训派对day2 F-SUM OF SUB RECTANGLE AREAS

2020牛客国庆集训派对day2 F-SUM OF SUB RECTANGLE AREAS 数学推导+大数相乘题意思路Code() 传送门:https://ac.nowcoder.com/acm/contest/7818/F 题意 给一个N*N的矩阵,每一位上都是1,求所有子矩阵的权值之和。 思路 设n=3;设n = 3;设n=3; 考虑子矩阵大小为i∗ji * ji∗j的个数xxx,即该大小的所有子矩阵的权值为x∗i∗jx* i * jx∗i∗j。 1∗21 * 21∗2子矩阵:每行个数为222

狙击美佐的博客 1023

[POJ3233] Matrix Power Series(矩阵快速幂)

传送门 k <= 109 暴力肯定超时 根据矩阵性质,可以发现 S(4) = A1 + A2 + A2* (A1 + A2) S(5) = A1 + A2 +A2* (A1+ A2) + A5 所以可以递归二分求解,分别判断 Ak,k 为奇数和偶数的情况 ——代码 1 #include <cstdio> 2 #include &lt...

weixin_30872157的博客 153

矩阵补全低秩结构

相反,如果低秩矩阵的奇异向量是"铺展"的——能量分散在所有行与所有列上,与采样矩阵的坐标基"不相干"——那么随机抽取有限个元素,就有很大概率覆盖到足以确定那几个潜在因子的信息。核范数是秩的凸松弛,就像 ℓ1 是 ℓ0 的凸松弛一样,它是"秩这个非凸目标在凸方向上最紧的替代"。报告里如果把矩阵补全压缩成几条可执行原则:第一,在动手做任何"从几行数据推断整张表"的任务前,先检验低秩假设是否成立——用已有的数据估计一下矩阵的近似秩,若秩接近满秩,那么低秩恢复这条路就不该走,应换用其他方法或引入领域约束降低秩。

2602_95606446的博客 317
上一篇: TZOJ6558: 城镇封锁(Tarjan、割点、子树贡献、乘法原理、找规律)
下一篇: TZOJ6481: 乐呵取石子(尼姆博弈+特判处理)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值