真是道坑题,数据范围如此大。

首先构造矩阵 [ f[0] , 1] * [ a,0 ] ^n= [ f[n],1 ]

[ c,1 ]

注意到m, a, c, x0, n, g<=10^18,所以要有类似于二进制分解的方法进行快速乘,防止爆范围。

Program CODEVS1281;
type arr=array[..,..] of int64;
Program CODEVS1281;
var a,b:arr;
m,k1,k2,x0,n,mo,p:int64;
function quick(x,y:int64):int64;
var ans:int64;
begin
ans:=;
while y> do
begin
if y mod = then ans:=(ans+x) mod m;
y:=y div ;
x:=x* mod m;
end;
exit(ans);
end;
operator *(a,b:arr) c:arr;
var i,j,k:longint;
sum:int64;
begin
fillchar(c,sizeof(c),);
for i:= to do
for j:= to do
begin
sum:=;
for k:= to do
sum:=(sum+quick(a[i,k],b[k,j]))mod m;
c[i,j]:=sum;
end;
exit(c);
end;
begin
readln(m,k1,k2,x0,n,mo);
a[,]:=; a[,]:=; a[,]:=; a[,]:=;
b[,]:=k1; b[,]:=; b[,]:=k2; b[,]:=;
while n> do
begin
if n mod = then a:=a*b;
n:=n div ;
b:=b*b;
end;
writeln((quick(x0,a[,])+a[,]) mod m mod mo); end.

最新文章

  1. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 K. King’s Rout
  2. Android Studio开发第四篇版本管理Git(下)
  3. c# 文件另存为代码
  4. Linux下建立Nexus私服
  5. C内存分配函数
  6. Android中由IP地址查询经纬度坐标的实例
  7. IOS MVC
  8. Kruskal-Wallis Test and Friedman test
  9. PHP设置session多级路径并定期自动清理
  10. 文字在div中居中
  11. 三种计算c#程序运行时间的方法
  12. Sublime text3 代码格式化插件
  13. 使用document.execCommand复制内容至剪贴板
  14. Bootstrap3基础 栅格系统 标尺(col-lg/md/sm/xs-1)
  15. s21day07 python笔记
  16. ModelForm的使用
  17. DL_WITH_PY系统学习(第2章)
  18. Java中的容器 I————浅谈List
  19. ubuntu忘记root密码 的解决方法
  20. ‘ActiveX component can’t create object解决方法

热门文章

  1. bzoj1477 &amp;&amp; exgcd学习笔记
  2. Mariadb-lib
  3. 如何使jquery性能最佳
  4. [Swift通天遁地]四、网络和线程-(10)处理图片:压缩、缩放、圆角、CoreImage滤镜、缓存
  5. leetCode----day01---- 从排序数组中删除重复项
  6. [hihocoder][Offer收割]编程练习赛57
  7. 3分钟看懂flex布局
  8. 编写高质量的js之恰当选用if和switch
  9. 【转】npm 是干什么的
  10. HDU_1026_Ignatius and the Princess I_BFS(保存路径)