
----矩阵快速幂
欣君
追寻那如樱花般的绚烂
展开
-
51nod 1358 浮波那契
将 fb(x) 的变量扩大10倍显示后,可以得到fb(x)=fb(x-10)+fb(x-34)然后就是标准的矩阵快速幂了。#include using namespace std;const int siz=40;long long mod=1e9+7;struct mtx{ long long a[siz][siz];}unit;mtx multi(mtx m1原创 2016-11-05 01:54:15 · 287 阅读 · 0 评论 -
51nod 1537 分解
矩阵快速幂XJB乱搞一下,没严格证明准确性。#includeusing namespace std;const int siz=2;long long mod=1e9+7;struct mtx{ long long a[siz][siz];}unit;mtx multi(mtx m1,mtx m2){ int i,j,k; mtx ret; memset(ret.原创 2016-12-07 20:21:12 · 235 阅读 · 0 评论 -
51nod 1668 非010串
dp[i]=2*dp[i-1]-dp[i-2]+dp[i-3]由于有减号,所以矩阵快速幂时,可能会产生负数,要处理掉。#includeusing namespace std;const int siz=3;long long mod=1e9+7;struct mtx{ long long a[siz][siz];}unit;mtx multi(mtx m1,mtx m原创 2017-02-10 10:35:22 · 277 阅读 · 0 评论 -
牛客OI周赛8-提高组 C 随机采矿
出题人绝对星际玩多了。设表示时刻拥有个SCV的概率,可以得到:那么时刻生产的晶体矿数量期望为:当数据量较小时,可以直接写两重循环处理。当数据较大时,需要用矩阵加速。其中,会发现会不断变化,而实际上,在时,最多只有种可能性,因此可以分段处理,将相同的情况视为同一段。若当前段的起始点为,则这一段的终点为,易证明当时,为定值。初始。#inc...原创 2019-04-18 06:34:44 · 199 阅读 · 0 评论