题目名称 2512. 拆分游戏
输入输出 resolution.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 64 MiB
测试数据 10
题目来源 Gravatar安呐一条小咸鱼。 于2016-10-23加入
开放分组 全部用户
提交状态
分类标签
矩阵乘法
分享题解
通过:11, 提交:16, 通过率:68.75%
GravatarGo灬Fire 100 0.002 s 0.31 MiB C++
Gravatar哒哒哒哒哒! 100 0.002 s 0.32 MiB C++
Gravatarkito 100 0.003 s 0.29 MiB C++
Gravatar_Itachi 100 0.003 s 0.29 MiB C++
GravatarFoolMike 100 0.003 s 0.29 MiB C++
Gravatar再见 100 0.003 s 0.29 MiB C++
Gravatar梦那边的美好ET 100 0.003 s 3.16 MiB C++
GravatarAAAAAAAAAA 100 0.004 s 0.31 MiB C++
Gravatar悟理 100 0.005 s 0.31 MiB C++
Gravatar安呐一条小咸鱼。 100 0.007 s 0.31 MiB C++
关于 拆分游戏 的近10条评论(全部评论)
解平方根。
我们考虑一下这个递推式子:
设sqrt(m)+sqrt(m-1)为上一次的答案,那么更新一次以后答案变成了sqrt(3*m-1+2*sqrt(2*m*(m-1)))+sqrt(3*m-1+2*sqrt(2*m*(m-1)))
我们设x=m,y=sqrt(m*(m-1)),那么转移方程为x'=3*x+2*sqrt(2)*y-1,y'=2*sqrt(2)*x+3*y-sqrt(2)
这样的话我们递推就好了.
在模1e9+7下,sqrt(2)=59713600
GravatarFoolMike
2017-02-25 23:01 4楼
矩阵一定要初始化...
GravatarGo灬Fire
2016-12-31 10:10 3楼
Gravatar安呐一条小咸鱼。
2016-10-31 21:06 2楼
倍增666
Gravatarミント
2016-10-24 10:00 1楼

2512. 拆分游戏

★★★   输入文件:resolution.in   输出文件:resolution.out   简单对比
时间限制:1 s   内存限制:64 MiB

问(1+sqrt(2)) ^n  能否分解成 sqrt(m) +sqrt(m-1)的形式 如果可以 输出 m%1e9+7 否则 输出no

【输入格式】

一行,一个数n。(n<=10^18)

【输出格式】

一行,如果不存在m输出no,否则输出m%1e9+7

【样例输入1】

2

【样例输出1】

9

【样例输入2】

3

【样例输出2】

50

来源

51nod