Tr A hdu1575

就是一个快速幂的应用:

只要知道怎么求矩阵相乘!!(比赛就知道会超时,就是没想到快速幂!!!)

 #include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
__int64 a[][],b[][],c[][];
int n;
int main()
{
int t,i,j,m,k,d;
__int64 sum;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
for(i=;i<n;i++)
for(j=;j<n;j++)
{scanf("%I64d",&a[i][j]);b[i][j]=a[i][j];}
d=;
while(m)
{
if(m%&&d==)//因为快速幂规定起始为1,则第一次就来要分开考虑!!
{
for(i=;i<n;i++)
for(j=;j<n;j++)
a[i][j]=b[i][j];
d=;
}
else if(m%)
{
memset(c,,sizeof(c));
for(i=;i<n;i++)
for(j=;j<n;j++)
for(k=;k<n;k++)
c[i][j]+=a[i][k]*b[k][j]%;
for(i=;i<n;i++)
for(j=;j<n;j++)
a[i][j]=c[i][j];
}
m=m/;
memset(c,,sizeof(c));
for(i=;i<n;i++)
for(j=;j<n;j++)
for(k=;k<n;k++)
c[i][j]+=b[i][k]*b[k][j]%;
for(i=;i<n;i++)
for(j=;j<n;j++)
b[i][j]=c[i][j];
}
sum=;
for(i=;i<n;i++)
sum+=a[i][i];
printf("%I64d\n",sum%);
}
return ;
}

附上快速幂的模板:

 __int64 power(__int64 p,__int64 n)  //反复平方法求(p^n)%mod
{
__int64 sq=;
while(n>)
{
if(n%)
sq=(sq*p)%mod;
n/=;
p=p*p%mod;
}
return sq;
}

HDU1575Tr A(矩阵相乘与快速幂)的更多相关文章

  1. Luogu 3390 【模板】矩阵快速幂 (矩阵乘法,快速幂)

    Luogu 3390 [模板]矩阵快速幂 (矩阵乘法,快速幂) Description 给定n*n的矩阵A,求A^k Input 第一行,n,k 第2至n+1行,每行n个数,第i+1行第j个数表示矩阵 ...

  2. Luogu T7152 细胞(递推,矩阵乘法,快速幂)

    Luogu T7152 细胞(递推,矩阵乘法,快速幂) Description 小 X 在上完生物课后对细胞的分裂产生了浓厚的兴趣.于是他决定做实验并 观察细胞分裂的规律. 他选取了一种特别的细胞,每 ...

  3. poj3613:Cow Relays(倍增优化+矩阵乘法floyd+快速幂)

    Cow Relays Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7825   Accepted: 3068 Descri ...

  4. bzoj 3240: [Noi2013]矩阵游戏 矩阵乘法+十进制快速幂+常数优化

    3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 613  Solved: 256[Submit][Status] ...

  5. bzoj 3240 矩阵乘法+十进制快速幂

    首先,构造出从f[][i]->f[][i+1]的转移矩阵a,和从f[i][m]->f[i+1][1]的转移矩阵b, 那么从f[1][1]转移到f[n][m]就是init*(a^(m-1)* ...

  6. HDU4965 Fast Matrix Calculation —— 矩阵乘法、快速幂

    题目链接:https://vjudge.net/problem/HDU-4965 Fast Matrix Calculation Time Limit: 2000/1000 MS (Java/Othe ...

  7. BZOJ-3231 递归数列 矩阵连乘+快速幂

    题不是很难,但是啊,人很傻啊...机子也很鬼畜啊... 3231: [Sdoi2008]递归数列 Time Limit: 1 Sec Memory Limit: 256 MB Submit: 569 ...

  8. 【HDOJ5950】Recursive sequence(矩阵乘法,快速幂)

    题意:f[1]=a,f[2]=b,f[i]=2f[i-2]+f[i-1]+i^4(i>=3),多组询问求f[n]对2147493647取模 N,a,b < 2^31 思路:重点在于i^4的 ...

  9. BZOJ_1009_[HNOI2008]_GT考试_(动态规划+kmp+矩阵乘法优化+快速幂)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1009 字符串全部由0~9组成,给出一个串s,求一个长度为n的串,不包含s的种类有多少. 分析 ...

随机推荐

  1. 网页链接qq

    <a href="mqqwpa://im/chat?chat_type=wpa&uin=12345678&version=1&src_type=web& ...

  2. intellij,eclipse,vs2013快捷键

    如何跳转到上一次编辑的位置,即如何跳到上一个光标所在的位置? intellij: Command+Alt+左方向键:上一光标的位置 Command+Alt+右方向键:下一光标的位置 定位到最后编辑位置 ...

  3. Eclipse中调试Android技巧

    Android eclipse中程序调试 一:断点调试 用eclipse开发android程序的时,跟VS一样是可以断点单步调试的. 步骤如下. 1 设置断点:在编码窗体的左边框上用鼠标双击,或者右键 ...

  4. xlrd读取多个excel电子表数据

    import sys import xlrd import traceback def ReadData(FileName): try: workBook = xlrd.open_workbook(F ...

  5. Linux学习(一):从图形界面进入命令行及命令行进入图形界面

    一.从图形界面进入命令行 最近脑洞大开,想接触一下linux.本人设备是win7,于是安了VMware(12.0.0)虚拟机,在安Linux(我用的CentOS 6.3 64)时不太会搞,跟据提示(英 ...

  6. Nginx+tomcat负载均衡时静态页面报404

    百度到的问题解决BLOG http://os.51cto.com/art/201204/326843.htm nginx+2台tomcat负载均衡,应用程序已部署,单独访问tomcat时,可以访问到所 ...

  7. RancherOS Hyper-V 安装

    RancherOS Hyper-V 安装, Install to disk 打开 Hyper-V 管理界器, 新建虚拟机 输入名称和存储位置 选择一代 最低 1024M 配置网络 创建虚拟磁盘 设置启 ...

  8. aspnet超级链接 传递 当前页面 textbox值

    一共有两个窗体. 第一个窗体A传参到窗体B  A的参数是A窗体的textbox 窗体A代码 <html xmlns="http://www.w3.org/1999/xhtml" ...

  9. android studio怎么分享项目到Git@OSC托管

    鄙人初次发表,如有不妥之处,敬请批评指正 1,安装git. git下载地址:http://git-scm.com/downloads/ 2,在AS 的File->Settings->Ver ...

  10. Java程序员必须熟知的十项技术

    1.语法 Java程序员必须比较熟悉语法,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令 必须熟悉JDK带的一些常用命令及其常用选项,命 ...