摘要: 这个题目确实是很简单的一个矩阵快速幂,但是我在求和的时候,用的是标准的求和,即,一共计算logN次Ak,但是这样会超时。后来就发现原来本身和Sn=Sn-1+Fn;即Sn本身可以写在矩阵当中,所以直接求一次 Ak就能得出结果。#include #include #include #include #include using namespace std;struct Mat{ int mat[4][4];};Mat it,E,E0;void init(){ memset(it.mat,0,sizeof (Mat)); memset(E.mat,0,sizeof (Mat)); ... 阅读全文
posted @ 2013-11-22 19:44 KRisen 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 最近开始由线段树转移新的内容,线段树学到扫描线这里有点迷迷糊糊的,有时候放一放可能会好一些。最近突然对各种数学问题很感兴趣。好好钻研了一下矩阵快速幂。发现矩阵真是个计算神器,累乘类的运算原本要O(N)的复杂度一下子给降到Log(N),非常大的进步了。这个题目算是矩阵快速幂的比较难推的一个题目。题目要求 (sqrt(2)+sqrt(3))的 2^n并%1024,要求出值来并不难,构造矩阵即可,但是要mod1024就有问题了,小数不能直接mod,但是如果你取整之后再mod,结果绝逼出问题,因为浮点数的精度问题。所以从斌牛的博客上看到如此推算,推算第一块不难,而且很容易求出Xn 和 Yn,但是问题又 阅读全文
posted @ 2013-11-22 15:47 KRisen 阅读(505) 评论(0) 推荐(0) 编辑