neu1250矩阵快速幂哪~~
其实呢,自己乱测试数据也是会发现BUG的
一直都会是自己的代码错误!
折腾了我一大晚上到头来竟然矩阵数组的存储也是long long类型
不过终归是解决了 稍微学到一点教训吧
一个是写完代码 自己可以代几组数据试一下 有时候会出现那种很明显的错误 比如这个题出现负数神马啦
再一个经验是Long long 真的比int 好用??
自己的程序几乎每个地方都可能超出范围
再最后是简单的程序也要多练 现在 自己敲一遍矩阵的乘法
#include<stdio.h>
#include<string.h>
#define da 100000007
struct M
{long long s[3][3];
};
struct M multiply(struct M a,struct M b){struct M c;memset(c.s,0,sizeof(c.s));for(int i=0;i<3;i++)for(int j=0;j<3;j++)for(int k=0;k<3;k++)c.s[i][j]=(c.s[i][j]+(a.s[i][k]*b.s[k][j])%da)%da;return c;
}
struct M paw(struct M a,long long t){if(t==1)return a;else{struct M b=paw(a,t/2);if(t&1){return multiply(multiply(b,b),a);}elsereturn multiply(b,b);}
}
int main()
{struct M a,c;a.s[0][0]=3;a.s[0][1]=2;a.s[0][2]=1;a.s[1][0]=1;a.s[1][1]=0;a.s[1][2]=0;a.s[2][0]=0;a.s[2][1]=1;a.s[2][2]=0;int a1,a2,a3;long long n;while(scanf("%d%d%d%lld",&a1,&a2,&a3,&n)!=EOF){if(n==0) { printf("%d\n",a1%da);}else if(n==1) {printf("%d\n",a2%da);}else if(n==2) { printf("%d\n",a3%da);}else{c=paw(a,n-2);long long x=(c.s[0][0]*(a3%da)+c.s[0][1]*(a2%da)+c.s[0][2]*(a1%da))%da;printf("%lld\n",x);}}return 0;
}
按位与“&”功能强大?
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
for(int k=0;k<N;k++)
{c.s[i][j]+=(a.s[i][k]%da)*(b.s[k][j]%da);
c.s[i][j]%=da;//因为各对应行列为i,j
}//也对
以后矩阵快速幂用这个自己写的吧....
转载于:https://www.cnblogs.com/cgf1993/archive/2013/04/12/3017226.html
neu1250矩阵快速幂哪~~相关推荐
- 矩阵快速幂+构造方法
与快速幂一样,可以将递推式通过二进制的方式来进行优化,这个学了快速幂就是十分容易理解 大概的板子如下: struct mat///自己定义大小的矩阵 {ll m[11][11]; }; mat mul ...
- 【做题】SRM701 Div1 Hard - FibonacciStringSum——数学和式&矩阵快速幂
原文链接 https://www.cnblogs.com/cly-none/p/SRM701Div1C.html 题意:定义"Fibonacci string"为没有连续1的01串 ...
- 快速幂 + 矩阵快速幂
快速幂 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #define LL lo ...
- HDU4549(矩阵快速幂+快速幂)
f(n)=a^f(n-1) + b^f(n-2):计算矩阵部分用矩阵快速幂:计算a的幂次和b的幂次用快速幂. #include<iostream> #include<algorith ...
- [HNOI2008]GT考试[矩阵快速幂+kmp优化的dp]
解题思路:假如说我们用f[i]表示长度为i的串能组合成无不吉利数字的组合的个数的话我们无法找到f[i]和f[i+1]的关系,就是我们下一位填某个数字会不会出现不吉利串,这就和你前面的串末尾于不吉利串重 ...
- I-Matrix Power Series POJ - 3233 矩阵快速幂+分治
I-Matrix Power Series POJ - 3233 矩阵快速幂+分治 Problem Description Given a n × n matrix A and a positive ...
- H - Fibonacci POJ - 3070 (矩阵快速幂)
H - Fibonacci POJ - 3070 (矩阵快速幂) Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and ...
- HDU 6185 Covering 矩阵快速幂 递推
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6185 题目描述: 一个4*n的矩形, 你用1*2的矩形覆盖有多少种方案, n <= 1e18 ...
- bzoj 1409 Password 矩阵快速幂+欧拉函数
可以发现,该数组的mi就是斐波那契数列 所以要矩阵快速幂搞出第n位 但是斐波那契数列上涨的很快,这就需要欧拉定理了 p^phi(q)%q=1(gcd(p,q)==1) p是素数,所以可以用 然后需要5 ...
最新文章
- 00-elasticsearch的pom文件
- java编译器使用教程_Java编译器API简介
- spring的ModelAndView
- Android--pendingIntent Intent
- matlab 滤波器设计 coe_一种半带滤波器的低功耗实现方法
- 计算机专业怎样提升竞争力,新形势下如何提高计算机专业学生就业竞争力.doc...
- java service 事物_Service 事务(JdbcUtils 升级)
- md 生成目录 码云_搭建简易博客方案
- ios设计规范_e微课5期:ios设计规范带来的设计细节(下篇)
- SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql
- 对称矩阵、Hermite矩阵、正交矩阵、酉矩阵、奇异矩阵、正规矩阵、幂等矩阵、合同矩阵、正定矩阵...
- Android开发之异步消息处理机制AsyncTask
- FISCO BCOS 区块链应用开发步骤
- 廖雪峰Git学习 | 笔记二:修改以及版本回退
- 【转载】大学生必备软件免费自学视频教程,让那些培训班都见鬼去吧
- GD32f103介绍第二章
- 鸿蒙之始有几个老婆,先天五太
- java做度量衡换算器_简易单位换算器_度量衡单位转换
- 【转载 | 强化学习】Curriculum Learning和Self-paced Learning的相关知识及应用
- 体脂手环、体脂秤等产品的体脂测量原理及技术方案分析
热门文章
- 排序算法对比、总结(Python代码)
- 算法移植优化(七)cmake常用函数记录
- 什么叫python代码的优化_优化Python代码
- java基本语法心得_Java学习笔记(一)——基础语法(上)
- java中uri什么意思,java URI URL 个人理解。
- 小程序的 rpx布局问题
- EOJ Monthly 2019.2 E 中位数 (二分+中位数+dag上dp)
- Java-keepalived
- REST framework(2)
- PHP结合Redis来限制用户或者IP某个时间段内访问的次数