首页 > 学院 > 开发设计 > 正文

【codejam2008 Round1A】Numbers 题解

2019-11-06 08:25:22
字体:
来源:转载
供稿:网友

题目大意

      (3+5√)n 的整数部分最后三位。       n<=2e9

这真是个有趣的问题

这里写图片描述

解法

      考虑一项一项地乘       某个数 a+b5√,给它乘个 3+5√ 之后,会变成 (3a+5b)+(a+3b)5√      于是可以考虑矩阵乘法。

      但是直接这样矩阵乘法不能模!!!       原因是,a=a mod 1000,但 b5√≠(b mod 1000)5√

      所以再考虑 (3−5√)n。设 (3+5√)n=a+b5√,那么 (3−5√)n 就等于 a−b5√。两式相加得 2a      又由于 0<3−5√<1,所以 0<(3−5√)n<1,因此答案就是 2a−1      于是我们矩阵乘法只需要求 a,这样就可以模了!!

      (个人感觉妙啊。。。)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表