vijos1067守望者的逃离
裸的矩阵乘法,我却调了一上午……弱到爆啊……
不过最终辛苦没有白费,我终于彻底搞懂了
要注意几点:
一、必须构造出前几项
二、用矩阵乘法算法之后还要手工算答案,利用首先算好的前几项
三、想好自己构造的矩阵是横着的还是竖着的
四、要用一个单位矩阵存储最后的结果
代码:(不容易啊)
type matrix=array[..,..] of int64;
var i,n,k,j:longint;
ans:int64;
a,b:matrix;
f:array[..] of int64;
function mo(x:int64):int64;
begin
mo:=x mod ;
end;
procedure mul(var x,y,z:matrix);
var i,j,l:longint;
t:matrix;
begin
fillchar(t,sizeof(t),);
for i:= to k do
for j:= to k do
for l:= to k do
t[i,j]:=mo(t[i,j]+x[i,l]*y[l,j]);
z:=t;
end;
procedure ksm(times:longint);
begin
while times<> do
begin
if times and = then mul(a,b,b);
times:=times>>;
mul(a,a,a);
end;
end;
procedure init;
begin
readln(k);readln(n);
fillchar(a,sizeof(a),);
fillchar(b,sizeof(b),);
for i:= to k do a[,i]:=;
for i:= to k do a[i,i-]:=;
for i:= to k do b[i,i]:=;
f[]:=;f[]:=;
for i:= to k do
for j:= to i- do
f[i]:=mo(f[i]+f[j]);
if n<=k then begin writeln(f[n]);halt;end;
end;
procedure main;
begin
ksm(n-k);
ans:=;
for i:= to k do ans:=mo(ans+b[,i]*f[k+-i]);
writeln(ans);
end;
begin
init;
main;
end.
vijos1067守望者的逃离的更多相关文章
- vijos1431[noip2007]守望者的逃离(背包动规)
描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者 在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这 个荒岛施咒,这座岛很快就会 ...
- noip普及组2007 守望者的逃离
守望者的逃离 描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座 ...
- P1095 守望者的逃离
P1095 守望者的逃离 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这 ...
- codevs 1144 守望者的逃离
传送门 1144 守望者的逃离 2007年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 恶 ...
- 【dp】守望者的逃离
妙 题目描述 恶魔猎手尤迪安野心勃勃,他背着了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快 ...
- luogu -P1095 守望者的逃离 - 分别DP
P1095 守望者的逃离: https://www.luogu.org/problemnew/show/P1095 题意: 有一个人要在S长度的直线上跑过去,初始有M的魔法值,用10点魔法值可以在一秒 ...
- 【Vijos】1431 守望者的逃离
题目链接:https://vijos.org/p/1431 算法:贪心 描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒 ...
- NOIP2007 守望者的逃离-DP
https://vijos.org/p/1431 描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守 ...
- 【洛谷】P1095 守望者的逃离(递推)
题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会 ...
随机推荐
- php Zend Opcache,xcache,eAccelerator缓存优化详解及对比
XCACHE XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接 ...
- 采集/自动登录啊都可以用这两个方法实现 asp.net
/// <summary> /// 通过get方式发送xmlHttp请求,并获得响应数据 /// </summary> /// <param name="Url ...
- what is the purpose of channel coding?(信道编码的作用?)
信道.信道编码及其作用 1.信道(channel) 信道和通信电路并不等同,用来表示向某一个方向传送信息的媒体.因此一条通信线路往往包含一条发送信道和一条接收信道. 从通信的双方信息交互方式看有三个基 ...
- android service 整理
项目经常要跟别的项目进行交互,比如说蓝牙打印机等,或者处理一些网络状态,或者调用baidu.高德等地图的时候就会用到, 或打开了音乐播放之后,便想去看看图片,或者下载文件的时候,我们看看博客. Ser ...
- orcale同一条语句运行速度差异问题
在oracle中执行一个查询语句,该语句首次执行时orcale会把其内容存入SGA(系统全局区)中,下次再执行同一条语句的时候就不再去解析该语句,而是直接从SGA区中取出该语句执行,但是前提是SQL没 ...
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
今天用PL/SQL连接虚拟机中的Oracle数据库,发现报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,也许你也遇到过,原因如下: oracle安装成功后,一直未停止 ...
- (转)关于Struts 2 拦截器参数丢失问题
from:http://www.cnblogs.com/huzx/archive/2011/06/09/2076328.html 今天在做用户的登陆认证的时候出现的问题. 在传参数的时候,发现参数丢失 ...
- grep正则表达式后面的单引号和双引号的区别
单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换:双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容! 一般常量用单引号' ...
- POJ 3191 The Moronic Cowmpouter(进制转换)
题目链接 题意 : 将一个10进制整数转化为-2进制的数. 思路 :如果你将-2进制下的123转化为十进制是1*(-2)^2+2*(-2)^1+3*(-2)^0.所以十进制转化为-2进制就是一个逆过程 ...
- OSharp框架总体设计
OSharp框架解说系列(1):总体设计 〇.前言 哈,距离前一个系列<MVC实用构架设计>的烂尾篇(2013年9月1日)已经跨了两个年头了,今天是2015年1月9日,日期已经相映,让我们 ...