解题思路:
注意事项:
参考代码:
n,m,p = map(int,input().split())
# 定义快速幂,k为取模的时候使用
def fp(base, power:int, k=float('inf')):
res = 1
while power>0:
if power&1:
res *= base%k
power >>= 1
base *= base%k
return res
# 矩阵点乘
def matrix_m(n,m):
R = [[0]*len(m[0]) for i in range(len(n))]
for a in range(len(n)):
for b in range(len(m[0])):
total = 0
for c in range(len(n[0])):
total += n[a][c]*m[c][b]
R[a][b] = total
return R
# 矩阵快速幂
def m_fp(base,power):
def get(n,i):
v = [0]*n
v[i] = 1
return v
res = [get(len(base),i) for i in range(len(base))]
while power>0:
if power&1:
res = matrix_m(res,base)
power >>= 1
base = matrix_m(base,base)
return res
T = [[1,1],[1,0]]
f_m = matrix_m(m_fp(T,m-2),[[1],[1]])[0][0]
s_n = matrix_m(m_fp(T,n),[[1],[1]])[0][0]-1
#print(f_m,s_n)
print(s_n%f_m%p)
0.0分
2 人评分
【绝对值排序】 (C语言代码)浏览:821 |
【求[X,Y]内被除3余1并且被除5余3的整数的和】 (C语言代码)浏览:674 |
K-进制数 (C语言描述,蓝桥杯)浏览:925 |
sizeof的大作用 (C语言代码)浏览:1450 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:557 |
矩阵乘方 (C语言代码)浏览:1030 |
sizeof的大作用 (C语言代码)浏览:1028 |
生日日数 (C语言代码)浏览:1502 |
盐水的故事 (C语言代码)浏览:1528 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:608 |