Description

B 君有两个好朋友,他们叫宁宁和冉冉。

有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求((b+sqrt(D)/2)^N的整数部分,请输出结果 Mod 7528443412579576937 之后的结果吧。

Input

一行三个整数 b;d;n

Output

一行一个数表示模 7528443412579576937 之后的结果。

Sample Input

1 5 9

Sample Output

76

HINT

0 <b^2 < d< (b +1)2 < 10^18。

题解

http://blog.csdn.net/popoqqq/article/details/45148309

沈老师的特征方程,(⊙o⊙)…,然后oj上floor it,是其部分分部分,矩阵乘法即可。

 #include<set>
#include<map>
#include<ctime>
#include<queue>
#include<cmath>
#include<cstdio>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm> #define ll unsigned long long
#define mod 7528443412579576937UL
using namespace std;
ll read()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
ll b,d,n,A,B;
ll mul(ll a,ll b)
{
ll ans=;a%=mod;
for(ll i=b;i;i>>=,a=(a+a)%mod)
if(i&)ans=(ans+a)%mod;
return ans;
}
struct M{
ll a[][];
M(){
memset(a,,sizeof(a));
}
friend M operator*(M a,M b){
M ans;
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
(ans.a[i][j]+=mul(a.a[i][k],b.a[k][j]))%=mod;
return ans;
}
friend M operator^(M a,ll b){
M ans;
ans.a[][]=ans.a[][]=;
for(ll i=b;i;i>>=,a=a*a)
if(i&)ans=ans*a;
return ans;
}
}a,ans;
int main()
{
b=read();d=read();n=read();
A=b;B=(d-b*b)/;
a.a[][]=;a.a[][]=B;a.a[][]=A;
ans.a[][]=;ans.a[][]=b;
int F=;
if(b*b!=d&&n%==)F=;
printf("%lld\n",(((a^n)*ans).a[][]-F+mod)%mod);
}

最新文章

  1. SE1-soc入手又有的东西可以玩了
  2. python多线程之semaphore(信号量)
  3. JS中的特有语句-for in
  4. C#- 反射之 GetType()方法
  5. hbase基本操作
  6. Spring MVC 详解(二)
  7. PreferenceActivity使用方法
  8. ubuntu on win VS ubuntu(virtual box)VS Cygwin
  9. cognos10.2.2使用ODBC连接oracle92数据库(BMT-IMP-0016)
  10. Android studio dabao
  11. CentOS通过yum安装php7.0
  12. Orchard 学习
  13. python常用模块(1):collections模块和re模块(正则表达式详解)
  14. MeshCollider双面化脚本
  15. Get/POST方法提交的长度限制
  16. BZOJ_3872_[Poi2014]Ant colony_dfs
  17. Java注解(一):介绍,作用,思想及优点
  18. LOJ#3043.【ZJOI2019】 线段树 线段树,概率期望
  19. Windows10 磁盘100%解决办法
  20. vs2017无法安装

热门文章

  1. office word excel等图标显示异常
  2. WPF中退出时显示是否保存数据提示
  3. 团队作业-Beta冲刺第二天
  4. sscanf函数详解
  5. ECshop二次开发 ECSHOP首页显示积分商城里的商品
  6. 【Java_多线程并发编程】基础篇——线程状态扭转函数
  7. MariaDB数据库(五)
  8. 初遇Linux
  9. 常用c++函数
  10. DocView mode 3 -- 配置