博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ-3233 Matrix Power Series 矩阵A^1+A^2+A^3...求和转化
阅读量:4601 次
发布时间:2019-06-09

本文共 778 字,大约阅读时间需要 2 分钟。

S(k)=A^1+A^2...+A^k.

保利求解就超时了,我们考虑一下当k为偶数的情况,A^1+A^2+A^3+A^4...+A^k,取其中前一半A^1+A^2...A^k/2,后一半提取公共矩阵A^k/2后可以发现也是前一半A^1+A^2...A^k/2。因此我们可以考虑只算其中一半,然后A^k/2用矩阵快速幂处理。对于k为奇数,只要转化为k-1+A^k即可。n为矩阵数量,m为矩阵大小,复杂度O[(logn*logn)*m^3]

#include 
#include
#include
#include
#include
#include
#include
#define LL long longusing namespace std;struct mx{    LL n, m;    LL c[35][35];//需要根据题目开大    void initMath(LL _n)//初始化方阵    {        m = n = _n;    }    void initOne(LL _n)//初始化单位矩阵    {        m = n = _n;        for (LL i = 0; i
> t;    while (t--)    {        cin >> n >> k;        b.initMath(n);        ans.initMath(n);        a.initMath(n);        for(int i=0;i
> a.c[i][j];            }        ans = s(k);        ans.print();    }    return 0;}

 

转载于:https://www.cnblogs.com/LukeStepByStep/p/7883057.html

你可能感兴趣的文章
c# 范型Dictionary实用例子
查看>>
C#实现动态页面静态化
查看>>
可选参数、命名参数、.NET的特殊类型、特性
查看>>
利用CGLib实现动态代理实现Spring的AOP
查看>>
面试之SQL(1)--选出选课数量>=2的学号
查看>>
IIS处理并发请求时出现的问题
查看>>
数学作业
查看>>
使用pycharm开发web——django2.1.5(二)创建一个app并做一些配置
查看>>
[ZPG TEST 105] 扑克游戏【Huffman】
查看>>
_bzoj2005 [Noi2010]能量采集
查看>>
pat 团体天梯赛 L3-010. 是否完全二叉搜索树
查看>>
烟草MES系统介绍-序
查看>>
优先队列小结
查看>>
线程安全与可重入函数之间的区别与联系
查看>>
bat批处理中如何获取前一天日期
查看>>
{Nodejs} request URL 中文乱码
查看>>
异常及日志使用与项目打包
查看>>
努力,时间,坚持,自律
查看>>
真三 bug PT的凤凰
查看>>
???动态SQL
查看>>