bzoj1008 矩乘递推
2024-08-23 03:12:59
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.
最新文章
- android listview多视图嵌套多视图
- 安装hadoop2.4.0遇到的问题
- PLSQL_Oracle簇表和簇表管理Index clustered tables(案例)
- min_free_kbytes
- poj 1159 Palindrome(dp)
- python list列表 方法总结
- UISearchBar控件
- 【python】matplotlib在windows下安装
- Django+Nginx+uWSGI部署
- uvalive 5834 Genghis Khan The Conqueror
- Linux学习之Centos(三)------系统文件目录及含义详解
- 关于Flask-Login中session失效时间的处理
- Suse linux enterprise 11添加设置中文输入法的方法
- Software License Manager
- Python+OpenCV图像处理(四)—— 色彩空间
- lnmp部署知乎出现403
- StringUtils学习
- Java基础(1)JDK的安装与环境变量配置
- perl的内置函数scalar
- hive学习(四) hive的函数
热门文章
- github简单使用教程(转)
- Windows Server2003下安装IIS服务脑图
- ThreadPool线程池的几种姿势比较
- Visual Studio Code 配置Go 开发环境最简单的方法!!!
- LeetCode 707 ——设计链表
- sqlserver查询数据库中有多少个表,多少视图,多少存储过程,或其他对象
- POJ 1144 Network(割点)
- Understand:高效代码静态分析神器详解(一) | 墨香博客 http://www.codemx.cn/2016/04/30/Understand01/
- c# mysql blob数据类型
- MvcMusicStore学习中常出现的一个BUG