poj3233
这道题其实算是把快速幂的思想用在多项式之中
A+A^2+A^3+…+A^n=(A+A^1…+A^[n/2])+A^[n/2](A+A+A^1…+A^[n/2])+n mod 2*A^n
然后就是打码的问题了
var ans,a,b,c,f:array[..,..] of longint;
d:array[..] of longint;
i,j,n,m,p:longint; procedure mul;
var i,j,k:longint;
begin
for i:= to n do
for j:= to n do
begin
c[i,j]:=;
for k:= to n do
c[i,j]:=(c[i,j]+a[i,k]*b[k,j] mod p) mod p;
end;
end; procedure add;
var i,j:longint;
begin
for i:= to n do
for j:= to n do
ans[i,j]:=(ans[i,j]+c[i,j]) mod p;
end; procedure quick(x:longint);
var i,j:longint;
begin
j:=;
while x<> do
begin
inc(j);
d[j]:=x mod ;
x:=x shr ;
end;
fillchar(c,sizeof(c),);
for i:= to n do
c[i,i]:=;
for i:=j downto do
begin
a:=c;
b:=c;
mul;
if d[i]= then
begin
a:=c;
b:=f;
mul;
end;
end;
end; procedure work(x:longint);
begin
if x= then ans:=f
else begin
work(x shr );
quick(x shr );
a:=c;
b:=ans;
mul;
add;
if x mod = then
begin
quick(x);
add;
end;
end;
end; begin
readln(n,m,p);
for i:= to n do
for j:= to n do
read(f[i,j]);
work(m);
for i:= to n do
begin
for j:= to n do
begin
write(ans[i,j]);
if j<>n then write(' ');
end;
writeln;
end;
end.
poj3233的更多相关文章
- 【poj3233】 Matrix Power Series
http://poj.org/problem?id=3233 (题目链接) 题意 给出一个n×n的矩阵A,求模m下A+A2+A3+…+Ak 的值 Solution 今日考试就A了这一道题.. 当k为偶 ...
- poj3233(矩阵快速幂)
poj3233 http://poj.org/problem?id=3233 给定n ,k,m 然后是n*n行, 我们先可以把式子转化为递推的,然后就可以用矩阵来加速计算了. 矩阵是加速递推计算的一 ...
- poj3233(等比矩阵求和)
poj3233 题意 给出一个 \(n \times n\) 的矩阵 \(A\) ,求 \(A + A^2 + A^3 + ... + A^k\) . 分析 构造矩阵 \[ \begin{bmatri ...
- [POJ3233]Matrix Power Series 分治+矩阵
本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [POJ3233]Matrix Power Series 分治+矩阵 题目大意 A为n×n(n<= ...
- poj3233 矩阵等比数列求和 二分
对于数列S(n) = a + a^2 + a^3 +....+ a^n; 可以用二分的思想进行下列的优化. if(n & 1) S(n) = a + a^2 + a^3 + ....... + ...
- POJ3233 Matrix Power Series
Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. ...
- poj3233之经典矩阵乘法
Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 12346 Accepted: ...
- POJ3233(矩阵二分再二分)
题目非常有简单: Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + ...
- POJ-3233 Matrix Power Series 矩阵A^1+A^2+A^3...求和转化
S(k)=A^1+A^2...+A^k. 保利求解就超时了,我们考虑一下当k为偶数的情况,A^1+A^2+A^3+A^4...+A^k,取其中前一半A^1+A^2...A^k/2,后一半提取公共矩阵A ...
随机推荐
- Tcp抓包以及tcp状态解释
tcp三次握手 发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手:接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它, ...
- springmvc使用@ResponseBody返回json乱码解决方法
1.springmvc 3.2以上的版本解决乱码的方法: 第一步:在配置中加入: <mvc:annotation-driven> <mvc:message-converters re ...
- build/core/config.mk
# 如果定义了ANDROID_BUILD_SHELL,则ANDROID_BUILD_SHELL # 否则使用默认的/bin/bash ifdef ANDROID_BUILD_SHELL SHELL : ...
- C#基础入门--关于C#背景介绍以及变量相关
在正式探索C#的奥秘之前,我们先谈一谈关于学习方法的问题吧.你会不会有这样的感悟,自己努力奋斗得到的东西倍加珍惜,飘到眼前的,却不屑一顾.我认为,学习的整个历程亦是如此.在学习过程中,只有我们遇到了问 ...
- C# DbHelperSQLite,SQLite数据库帮助类 (转载)
主要功能如下数据访问抽象基础类 主要是访问SQLite数据库主要实现如下功能 .数据访问基础类(基于SQLite),主要是用来访问SQLite数据库的. .得到最大值:是否存在:是否存在(基于SQLi ...
- Fragment的生命周期和Activity之间的通信以及使用
Fragment通俗来讲就是碎片,不能单独存在,意思就是说必须依附于Activity,一般来说有两种方式把Fragment加到Activity,分为静态,动态. 静态即为右键单击,建立一个Fragme ...
- Android 输入法键盘和activity页面遮挡问题解决
本文主要介绍Android中如何解决输入法键盘和activity页面遮挡的问题. 总结: 不希望遮挡设置activity属性android:windowSoftInputMode="adju ...
- QVW中实现日期区间的选择功能!
QV在日期的选择上不是很灵活,日期区段的选择可以在列表框中直接用鼠标拖拉区段,如果跨周期比较长了还是不是很方便啦. 下面介绍的方式是完全实现了起始日期的选择功能. 注:日期这个字段在抽取的时候一定要格 ...
- JS DOM 来控制HTML元素
JS DOM 来控制HTML元素 (ps:这个有很多方法,挑一些详解,嘻嘻) 1.getElementsByName():获取name. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- YouTube视频代码总结
var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api" ...