链接

也是矩阵经典题目  二分递归求解

a+a^2+a^3+..+a^(k/2)+a^(k/2+1)+...+a^k = a+a^2+..+a^k/2+a^k/2(a^1+a^2+..+a^k/2)(偶数)

a+a^2+a^3+..+a^(k/2)+a^(k/2+1)+...+a^k = a+a^2+..+a^k/2+a^k/2(a^1+a^2+..+a^k/2)+a^k。 奇数

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<vector>
#include<cmath>
#include<queue>
#include<set>
using namespace std;
#define N 1e9
#define LL long long
#define INF 0xfffffff
const double eps = 1e-;
const double pi = acos(-1.0);
const double inf = ~0u>>;
struct Mat
{
int mat[][];
};
int n,mod;
Mat operator + (Mat a,Mat b)
{
Mat c;
int i,j;
for(i = ; i < n ;i++)
for(j = ;j < n ;j++)
{
if(a.mat[i][j]+b.mat[i][j]>mod)
c.mat[i][j] = (a.mat[i][j]+b.mat[i][j])%mod;
else
c.mat[i][j] = a.mat[i][j]+b.mat[i][j];
}
return c;
}
Mat operator * (Mat a,Mat b)
{
Mat c;
memset(c.mat,,sizeof(c.mat));
int i,j,k;
for(k = ; k < n ; k++)
{
for(i = ; i < n ;i++)
{
if(a.mat[i][k]==) continue;
for(j = ;j < n ;j++)
{
if(b.mat[k][j]==) continue;
c.mat[i][j] = (c.mat[i][j]+a.mat[i][k]*b.mat[k][j])%mod;
}
}
}
return c;
}
Mat operator ^(Mat a,int k)
{
Mat c;
int i,j;
for(i = ; i < n ;i++)
for(j = ; j < n ;j++)
c.mat[i][j] = (i==j);
for(; k ;k >>= )
{
if(k&) c = c*a;
a = a*a;
}
return c;
}
Mat solve(Mat x,int k)
{
if(k==) return x;
Mat c ;
c = x^k;
Mat a = solve(x,k/);
Mat b = x^(k/);
if(k&) c = a+b*a+c;
else c = a+b*a;
return c;
}
int main()
{
int t;
int i,j;
while(scanf("%d%d%d",&n,&t,&mod)!=EOF)
{
Mat x;
for(i = ; i < n ;i++)
for(j = ; j < n ;j++)
scanf("%d",&x.mat[i][j]);
x = solve(x,t);
for(i = ; i < n ;i++)
{
for(j = ; j < n-; j++)
printf("%d ",x.mat[i][j]%mod);
printf("%d\n",x.mat[i][n-]%mod);
}
}
return ;
}

poj3233Matrix Power Series的更多相关文章

  1. POJ3233Matrix Power Series(十大矩阵问题之三 + 二分+矩阵快速幂)

    http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total ...

  2. poj3233Matrix Power Series(矩阵乘法)

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 23187   Accepted: ...

  3. POJ3233Matrix Power Series(矩阵快速幂)

    题意 题目链接 给出$n \times n$的矩阵$A$,求$\sum_{i = 1}^k A^i $,每个元素对$m$取模 Sol 考虑直接分治 当$k$为奇数时 $\sum_{i = 1}^k A ...

  4. C++-POJ3233-Matrix Power Series[矩阵乘法][快速幂]

    构造矩阵 #include <cstdio> ; struct Matrix{int a[MAXN][MAXN];}O,I;int N; ;i<MAXN;i++);j<MAXN ...

  5. POJ 3233Matrix Power Series

    妈妈呀....这简直是目前死得最惨的一次. 贴题目: http://poj.org/problem?id=3233 Matrix Power Series Time Limit: 3000MS Mem ...

  6. MOOCULUS微积分-2: 数列与级数学习笔记 6. Power series

    此课程(MOOCULUS-2 "Sequences and Series")由Ohio State University于2014年在Coursera平台讲授. PDF格式教材下载 ...

  7. 线性代数(矩阵乘法):POJ 3233 Matrix Power Series

    Matrix Power Series   Description Given a n × n matrix A and a positive integer k, find the sum S = ...

  8. C++题解:Matrix Power Series ——矩阵套矩阵的矩阵加速

    Matrix Power Series r时间限制: 1 Sec 内存限制: 512 MB 题目描述 给定矩阵A,求矩阵S=A^1+A^2+--+A^k,输出矩阵,S矩阵中每个元都要模m. 数据范围: ...

  9. POJ 3233 Matrix Power Series(二分等比求和)

    Matrix Power Series [题目链接]Matrix Power Series [题目类型]二分等比求和 &题解: 这题我原来用vector写的,总是超时,不知道为什么,之后就改用 ...

随机推荐

  1. mutex 的 可重入

    在所有的线程同步方法中,恐怕互斥锁(mutex)的出场率远远高于其它方法.互斥锁的理解和基本使用方法都很容易,这里不做更多介绍了. Mutex可以分为递归锁(recursive mutex)和非递归锁 ...

  2. 【转载】How browsers work--Behind the scenes of modern web browsers (前端必读)

    浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么. 将讨论的浏览器 今天,有五种主流浏览器- ...

  3. Qt 用户登录界面

     使用QT创建自己的登录窗口: 主要步骤:    1.窗口界面的绘制     2.沟通数据库进行密码验证 void MainWindow::on_pushButton_clicked() { // 连 ...

  4. cocos2dx 3.0 显示中文及乱码解决方式

    遇到此问题第一时间在脑子里面联想到android下的strings.xml来做国际化,本文就仅仅针对解析xml来实现cocos2d-x的国际化解决乱码问题. 寻找解决方法的时候在cocos2d-x的c ...

  5. MySql InnoDb还原工具

    通过任意文件下载找到了mysql的备份,表类型是独享式innodb,由一个frm文件和一个ibd文件组成. 本以为直接复制到本地的mysql数据目录中即可恢复数据,但在查询时却发现并不如所愿: mys ...

  6. nhibernate的关系

    用nhibernate,觉得比较难把握的是其中表间的关系. 我用的是Fluently Nhibernate,直接用代码,而不是XML来书写代码与数据表的映射.其中表间关系有3种: 1.Referenc ...

  7. spring boot自定义properity

    1.spring boot使用application.properties默认了很多配置. 但有时需要自定义配置.若在application.properties添加属性: app.name=fish ...

  8. XMU 1608 nc与加法进位 【二分】

    1608: nc与加法进位 Time Limit: 2000 MS  Memory Limit: 128 MBSubmit: 29  Solved: 27[Submit][Status][Web Bo ...

  9. Linux下使用putty进行UART串口调试【转】

    本文转载自:http://blog.csdn.net/xzongyuan/article/details/11593101 版权声明:本文为博主原创文章,未经博主允许不得转载. 使用putty进行串口 ...

  10. 并不对劲的p2664树上游戏

    题目大意 有一棵\(n\)(\(n\leq10^5\))个点的树,每个点\(i\)有颜色\(c_i\)(\(c_i\leq10^5\)) 定义一条路径的得分为这条路径上的不同颜色个数 分别求每个点的以 ...