bzoj1008 矩乘递推
2013-11-17 10:38
原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1008
比较水的题,直接矩阵乘法+递推就OK了
w[i,0]代表i个人不越狱的方案,
w[i,1]代表i个人越狱的方案,
那么有
w[i,1]:=w[i-1,0]+w[i-1,1]*m;
w[i,0]:=w[i-1,0]*(m-1);
然后用矩阵乘法加速。
然后我们可以发现,w[i,0]就是(m-1)^(i-2)*m
那么n个人,一共有n^m种方案,减去w[n,0]就好了
那么式子就是ans=m^n-m*(m-1)^(n-2)
//By BLADEVIL
const
d39 =; type
rec =array[..,..] of int64; var
n, m :int64;
p :int64;
ans, sum :rec;
w :int64; function mul(a,b:rec):rec;
var
i, j, k :longint;
begin
fillchar(mul,sizeof(mul),);
for i:= to do
for j:= to do
for k:= to do mul[i,j]:=mul[i,j]+(a[i,k]*b[k,j]) mod d39;
end; begin
read(m,n);
if n= then
begin
writeln();
halt;
end;
ans[,]:=; ans[,]:=;
sum[,]:=m-; sum[,]:=; sum[,]:=m;
p:=n-;
while p<> do
begin
if p mod = then ans:=mul(ans,sum);
p:=p div ;
sum:=mul(sum,sum);
end;
w:=((ans[,]*((m*m-m) mod d39) mod d39)+(ans[,]*m mod d39))mod d39;
writeln(w);
end.
bzoj1008 矩乘递推的更多相关文章
- [NOI2017]泳池——概率DP+线性递推
[NOI2017]泳池 实在没有思路啊~~~ luogu题解 1.差分,转化成至多k的概率减去至多k-1的概率.这样就不用记录“有没有出现k”这个信息了 2.n是1e9,感觉要递推然后利用数列的加速技 ...
- 【BZOJ4944】[NOI2017]泳池(线性常系数齐次递推,动态规划)
[BZOJ4944][NOI2017]泳池(线性常系数齐次递推,动态规划) 首先恰好为\(k\)很不好算,变为至少或者至多计算然后考虑容斥. 如果是至少的话,我们依然很难处理最大面积这个东西.所以考虑 ...
- BZOJ 3329: Xorequ(数位dp+递推)
传送门 解题思路 可以把原式移项得\(x\)^\(2x\)=\(3x\),而\(x+2x=3x\),说明\(x\)二进制下不能有两个连续的\(1\).那么第一问就是一个简单的数位\(dp\),第二问考 ...
- 线性齐次递推式快速求第n项 学习笔记
定义 若数列 \(\{a_i\}\) 满足 \(a_n=\sum_{i=1}^kf_i \times a_{n-i}\) ,则该数列为 k 阶齐次线性递推数列 可以利用多项式的知识做到 \(O(k\l ...
- 求解线性递推方程第n项的一般方法
概述 系数为常数,递推项系数均为一次的,形如下面形式的递推式,称为线性递推方程. \[f[n]=\begin{cases} C &n\in Value\\ a_1 f[n-1]+a_2 f[n ...
- 【BZOJ-2476】战场的数目 矩阵乘法 + 递推
2476: 战场的数目 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 58 Solved: 38[Submit][Status][Discuss] D ...
- 从一道NOI练习题说递推和递归
一.递推: 所谓递推,简单理解就是推导数列的通项公式.先举一个简单的例子(另一个NOI练习题,但不是这次要解的问题): 楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可 ...
- Flags-Ural1225简单递推
Time limit: 1.0 second Memory limit: 64 MB On the Day of the Flag of Russia a shop-owner decided to ...
- 利用Cayley-Hamilton theorem 优化矩阵线性递推
平时有关线性递推的题,很多都可以利用矩阵乘法来解决. 时间复杂度一般是O(K3logn)因此对矩阵的规模限制比较大. 下面介绍一种利用利用Cayley-Hamilton theorem加速矩阵乘法的方 ...
随机推荐
- 【APUE】Chapter5 Standard I/O Library
5.1 Introduction 这章介绍的standard I/O都是ISOC标准的.用这些standard I/O可以不用考虑一些buffer allocation.I/O optimal-siz ...
- ProxySQL读写分离测试(续)
Preface I've implemented ProxySQL on PXC yesterday but got some errors when configured query ...
- 「暑期训练」「Brute Force」 Far Relative’s Problem (CFR343D2B)
题意 之后补 分析 我哭了,强行增加自己的思考复杂度...明明一道尬写的题- -(往区间贪心方向想了 其实完全没必要,注意到只有366天,直接穷举判断即可. 代码 #include <bits/ ...
- 《百词斩·象形9000》第一册(上) 符号Symbol 1
001-upon prep. 在......上面 Wish upon a star.#对着星星许愿. 002-think V. 想,思索,认为:以为,预料 What do you think?#你认为 ...
- pandas DataFrame的创建方法
pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...
- Daily Scrum02 12.03
Daily Scrum03 12.03 一天过去了,新的一天即将到来,我们组仍旧干劲十足呢~ Member Today's Task Tomorrow's Task 李孟 孟神有点累了呢 task85 ...
- 淘宝RubyGems和NPM镜像的使用
题记:前不久在windows下配置jekyll环境时,需要用到gem,一个ruby的管理包,类似于管理nodejs包的npm.安装ruby环境后,使用gem安装包时请求国外的[https://ruby ...
- lintcode-63-搜索旋转排序数组 II
63-搜索旋转排序数组 II 跟进"搜索旋转排序数组",假如有重复元素又将如何? 是否会影响运行时间复杂度? 如何影响? 为何会影响? 写出一个函数判断给定的目标值是否出现在数组中 ...
- 3GPP规范命名规则解读
http://blog.sina.com.cn/s/blog_6b10255301012co6.html 学习了解电信技术知识的一个很好的手段是阅读3GPP的规范.但是3GPP有大量的规范,我们可能经 ...
- ThreadLocal 验明正身
一.前言 之前ThreadLocal使用不多,有个细节也就注意不到了:ThreadLocal在多线程中到底起什么作用?用它保存的变量在每个线程中,是每个线程都保存一份变量的拷贝吗?带着这些问题,我查了 ...