HDU 4549 M斐波那契数列 (费马小定理降幂&矩阵快速幂)

免费AI视频生成实战指南:从Runway到SVD的完整方案与技巧 AI视频生成技术正成为内容创作领域的热点,其核心原理是基于扩散模型等生成式AI,将文本或图像序列转化为动态视频帧。这项技术的价值在于大幅降低了动态视觉内容的制作门槛与成本,为短视频创作、营销素材、概念可视化等场景提供了高效工具。在实际应用中,用户常面临高质量与免费难以兼得的挑战。本文聚焦于**Stable Video Diffusion (SVD)** 等开源模型与**Runway ML**等平台的免费方案,深入解析其本地部署、参数调优及提示词工程等关键技术环节,旨在帮助开发者和创作者在有限资源下构建可用的 阅读详情

http://acm.hdu.edu.cn/showproblem.php?pid=4549


Problem Description
M斐波那契数列F[n]是一种整数数列,它的定义如下:

F[0] = a
F[1] = b
F[n] = F[n-1] * F[n-2] ( n > 1 )

现在给出a, b, n,你能求出F[n]的值吗?
 

Input
输入包含多组测试数据;
每组数据占一行,包含3个整数a, b, n( 0 <= a, b, n <= 10^9 )
 

Output
对每组测试数据请输出一个整数F[n],由于F[n]可能很大,你只需输出F[n]对1000000007取模后的值即可,每组数据输出一行。
 

Sample Input
  
0 1 0 6 10 2
 

Sample Output
  
0 60
 

Source


思路:

1. 首先得出封闭形式:

F[n]=a  (n=0)

F[n]=a^Fib[n-1]*b^Fib[n]  (n>0)

2. 发现1000000007是质数,遂用费马小定理,得

F[n]%m=a^(Fib[n-1]%(m-1))*b^(Fib[n]%(m-1))%m

3. f[n]%(m-1)的计算用矩阵快速幂

4. a^x的计算用快速幂


完整代码:

/*0ms,232KB*/

#include<cstdio>
const long long M = 1000000007;

struct Matrix
{
	long long mat[2][2];
};
const Matrix P =
{
	1, 1,
	1, 0,
};
const Matrix I =
{
	1, 0,
	0, 1,
};

Matrix matrixmul(Matrix a, Matrix b)
{
	Matrix c;
	int i, j, k;
	for (i = 0 ; i < 2; ++i)
		for (j = 0; j < 2; ++j)
		{
			c.mat[i][j] = 0;
			for (k = 0; k < 2; ++k)
				///利用费马小定理
				c.mat[i][j] += a.mat[i][k] * b.mat[k][j] % (M - 1);///行*列
			c.mat[i][j] %= (M - 1);
		}
	return c;
}

///P^n%(M-1),P已在程序开头定义
Matrix quickpow(long long n)
{
	Matrix m = P, ret = I;
	while (n)
	{
		if (n & 1) ret = matrixmul(ret, m);
		n >>= 1;
		m = matrixmul(m, m);
	}
	return ret;
}

///a^b%M
long long quickpow(long long a, long long b)
{
	long long ret = 1;
	while (b)
	{
		if (b & 1) ret = ret * a % M;
		b >>= 1;
		a = a * a % M;
	}
	return ret;
}

int main()
{
	long long a, b, n;
	Matrix q;
	while (~scanf("%I64d%I64d%I64d", &a, &b, &n))
	{
		q = quickpow(n);///不需要特判哦
		printf("%I64d\n", quickpow(a, q.mat[1][1]) * quickpow(b, q.mat[1][0]) % M);///a^Fib(n-1)*b^Fib(n)%M
	}
	return 0;
}

基于奥比中光Orbbec Astra Pro与ROS实现实时3D环境建模:orb_slam2实战指南 本文提供了一份详细的实战指南,介绍如何使用奥比中光Orbbec Astra Pro深度摄像头与ROS系统,部署并运行ORB-SLAM2算法,实现实时3D环境建模与定位。内容涵盖从驱动安装、环境配置、算法编译到摄像头标定与性能调优的全流程,旨在帮助开发者快速搭建一套高性价比的视觉SLAM系统。 阅读详情

相关推荐

ROS2实战:手把手教你用CMake集成自定义DDS(以CycloneDDS为例)

本文详细介绍了如何在ROS2中通过CMake集成自定义DDS(以CycloneDDS为例),涵盖环境准备、源码编译、ROS2工作区集成、性能调优及常见问题排查。通过RMW中间件抽象层,开发者可以灵活切换DDS实现,提升系统实时性和可靠性。

weixin_29284201的博客 347

Sum HDU - 4704(费马小定理降幂+快速幂模运算详解)

Sum HDU - 4704 ...

codeswarrior的博客 1042

Android真机调试——ADB调试(含华为手机无法找到设备)

本文以Huawei Nova7为例。

lianqi2003的博客 7857

费马小定理 : 求逆元 降幂

定义 若p为素数, (a, p) = 1, 则ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p 证明 引理1  若(a, m) = 1, 则a,2a,3a,...,(m−1)aa, 2a, 3a, ..., (m-1)a 的最小剩余(mod m) 按某种次序排列后为1,2,3,...,m−11, 2, 3, ..., m-1 //关于引理1的证明不作赘述,

duaduac.com 958

深入理解「二进制掩码」:从原理到实践

二进制掩码本质上是一个二进制数,用于通过位操作(如与、或、非、异或等)选择性地操作目标数据的某些位。掩码的每一位(bit)可以看作一个“开关”,决定是否对目标数据的对应位进行操作。二进制掩码是位操作的灵魂,掌握它不仅能提升代码效率,还能解锁许多高级编程技巧。从基础的位提取到复杂的子集枚举,掩码的应用无处不在。希望本文的讲解和代码示例能帮助你快速上手,并在实际项目中灵活运用。如果你有更多关于掩码的疑问或应用场景,欢迎在评论区留言交流!

m0_73494933的博客 2432

LAMMPS实战:如何用ReaxFF力场模拟碳氢化合物热解(附完整脚本)

本文提供了一份使用LAMMPS软件中ReaxFF反应力场模拟碳氢化合物热解过程的完整实战指南。内容涵盖从环境准备、力场参数选择、能量最小化,到升温恒温动力学模拟的完整脚本编写,并介绍了基于轨迹文件的产物分析方法,帮助计算化学与材料科学研究者快速上手这一关键的分子动力学仿真技术。

soda5的博客 1098

HDU - 4549 斐波那契数列 (费马小定理+快速幂矩阵)

题意: 你会发现a和b的指数变化就是斐波那契数列,再结合费马小定理,定理应用到这一题就是可以将(A^B)%mod = (A^(B % mod ) )% mod)。 注意:用 long long防止数据溢出,最后a,b相乘之后要再取一次模。 #include #include #include #include #include #include using namespace std; #d

blaze_jack 377

几何非线性-屈曲分析

结构系统的破坏分为两种,一类是因材料软化而引起的强度破坏,另一类是几何软化使得结构的几何形状发生极大变化,从而使结构丧失承载能力。在材料力学中是这样定义压杆失稳的:中心受压直杆(理想模型)在直线状态下平衡,由稳定平衡转化为不稳定平衡时所受的轴向压力的界限值,称为临界压力。中心受压直杆在临界压力的作用下,其直线形态的平衡开始丧失稳定性,简称为失稳。显然,这个定义只使用于理想的压杆模型,那么关于失稳和屈曲是否存在一般性定义呢?

YORU_NO_KUNI的博客 1万+

hdu 4549——M斐波那契数列

矩阵快速幂+欧拉定理 #include #include using namespace std; #define mod 1000000007 #define LL __int64 void Mul(LL a[2][2],LL b[2][2],LL c[2][2])//矩阵的乘法运算 { int i,j,k; LL sum; for(i=0;i<2;i++) for(j=

986

uniapp [全端兼容] - 实现省市区选择器三四级联动组件,uniapp选择地址自定义省市区三级联动插件,弹框式多级联动选择器区域选择(全平台兼容苹果安卓App、支付宝微信小程序、移动端H5网页)

uni-app省市区选择器,省市区街道三级四级联动选择器,uniapp自定义多列选择器省市两级联动,uniapp picker组件实现多级联动,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uniApp选择器省市区县街道乡镇,uniapp实现省市区选择联动,uniapp城市三级联动(自定义组件)_uniapp三级联动,picker插件省市区联动,uniapp小程序省市区选择器,uni-app 省市区街道的四级联动选择,uniapp怎样实现省市区地址三级联动uni

🏆 前端领域优质创作者 1万+

【2023校招刷题】第二期:数字IC笔试模拟题(2)详细解析版

【2023校招刷题】第二期:数字IC笔试模拟题(2)详细解析版

悟已往之不谏 知来者之可追 4470

费马小定理·欧拉降幂·矩阵快速幂·M斐波那契数列 HDU - 4549

解题思路:由于n太大需要考虑降幂,利用扩展欧拉定理可以得出a^(p%phi)%mod = a^p%mod,因此我们只需要计算p%phi即可。讲明两个坑点吧:1、做了很多矩阵快速幂,做吐了之后忽视了矩阵的转移方式,应该是1,0作为矩阵的初始状态而不是0,1.写出来的话应该不是有这种错误的。2、再一个是费马小定理推导扩展欧拉的时候是有一个取模phi,这个phi是mod的欧拉函数,因为是素数可以使用费马...

吾之奉先的博客 505

Python爬虫教程:微博热点话题抓取与社交媒体分析

微博是中国最大的社交媒体平台之一,拥有海量的用户和丰富的讨论话题。通过爬取微博的热门话题和讨论内容,我们可以深入分析用户的兴趣、舆论走势、社会情绪等。通过爬取微博的热点话题和讨论内容,我们可以获得关于当前热门话题的宝贵数据,并基于这些数据进行多种社交媒体分析。本文将通过Python爬虫技术,详细介绍如何抓取微博上的热门话题、话题讨论内容,并进行社交媒体分析。希望本文为你提供了一个全面的微博数据抓取与分析的指南,帮助你在社交媒体数据分析的道路上迈出坚实的第一步。微博上的一些页面内容是静态的,可以直接通过。

2201_76125261的博客 590

【费马小定理降幂+矩阵快速幂+快速幂】M斐波那契数列 HDU - 4549

Think: 1知识点:费马小定理降幂+矩阵快速幂+快速幂 (1):费马小定理降幂: 定理:若gcd(A, M) == 1,则A^x = A^(x%Eular(M))(mod M) 注:Eular(M)为M的欧拉函数值 2题意: 已知: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 输入a, b, n,询问F[n] =

BlessingXRY的博客 692

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【HDU - 4549 】M斐波那契数列 【矩阵快速幂+费马小定理降幂】

M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗? Input 输入包含多组测试数据; 每组数据占一行,包含3个整数a, b, n( 0 <= a, b, n <= 10^9 ) Output 对每组测试数据请输出一个整数F[n

lzs_lazy 302

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

HDU 4549M斐波那契数列(矩阵快速幂+费马小定理)

M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 993Accepted Submission(s): 293 Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[...

pxlsdz的博客 483

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

hdu 4549 M斐波那契数列(矩阵快速幂,快速幂降幂)

http://acm.hdu.edu.cn/showproblem.php?pid=4549 f[0] = a^1*b^0%p,f[1] = a^0*b^1%p,f[2] = a^1*b^1%p.....f[n] = a^fib[n-1] * b^fib[n-2]%p。 这里p是质数,且a,p互素,那么我们求a^b%p,当b很大时要对b降幂。 因为a,p互素,那么由费马小定理

1631

M斐波那契数列(HDU-4549)

Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n &gt; 1 ) 现在给出a, b, n,你能求出F[n]的值吗? Input 输入包含多组测试数据; 每组数据占一行,包含3个整数a, b, n( 0 &lt;= a, b, n &lt;= ...

Alex_McAvoy的博客 756

HDU - 4549 M斐波那契数列(矩阵快速幂+费马小定理的优化)

题目链接:https://vjudge.net/contest/347398#problem/G 分析: 1.如何构建矩阵和斐波那契数列联系起来。 f[0]=a f[1]=b f[2]=ab f[3]=ab^2 f[4]=a^2 b^3 f[5]=a^3 b^5 f[6]=a^5 b^8 … 由此可见a和b的系数和斐波那契数列有联系 构造矩阵 1 1 1 0 加上单位矩阵 1 0 0 1 ...

zaiyang遇见 292

HDU-4549 M斐波那契数列(矩阵快速幂)(费马小定理)

#include &amp;amp;lt;iostream&amp;amp;gt; #include &amp;amp;lt;cstdio&amp;amp;gt; #include &amp;amp;lt;algorithm&amp;amp;gt; #include &amp;amp;lt;cstdlib&amp;amp;gt; #include &amp;amp;lt;cmath&amp;amp;gt; #include &amp;amp;lt;cstring&amp;amp;gt; usin

苍界的博客 399

M斐波那契数列HDU4549(矩阵快速幂 欧拉降幂)

M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n &gt; 1 ) 现在给出a, b, n,你能求出F[n]的值吗? Input 输入包含多组测试数据; 每组数据占一行,包含3个整数a, b, n( 0 &lt;= a, b, n &lt;= 10^9 ) Output 对每组测试数据请...

qq_43642142的博客 349

HDU 4549 M斐波那契数列(费马小定理,矩阵快速幂,快速幂)

M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 3404    Accepted Submission(s): 1056 Problem Description M斐波那契数列F[n]是一种整数数列

超越自我就是成功 449

【hdu 4549】 M斐波那契数列

Problem DescriptionM斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n &amp;gt; 1 )现在给出a, b, n,你能求出F[n]的值吗? Input输入包含多组测试数据;每组数据占一行,包含3个整数a, b, n( 0 &amp;lt;= a, b, n &amp;lt;= 10^9 ) Output对每组测试...

TLECODE的博客 436

hdu 4549

矩阵快速幂+快速幂+欧拉降幂+费马小定理 hdu 4549 M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 6497 Accepted Submission(s): 1987 Problem Description ...

青烟绕指柔的博客 601

HDU4549 M斐波那契数列(矩阵快速幂+费马小定理)

Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n &gt; 1 )现在给出a, b, n,你能求出F[n]的值吗? Input 输入包含多组测试数据;每组数据占一行,包含3个整数a, b, n( 0 &lt;= a, b, n &lt;= 10^9 ) Outp...

weixin_30354675的博客 140

hdu 4549 (矩阵快速幂+费马小定理)

题意:已知F0=a,F1=b,Fn=Fn-1*Fn-2,给你a,b,n求Fn%1000000007的值 思路:我们试着写几组数 F0=a F1=b F2=a*b F3=a*b2 F4=a2*b3 F5=a3*b5 我们发...

128
上一篇: HDU 2973 / UVa 1434 / CERC 2008 YAPTCHA (威尔逊定理及其逆定理)
下一篇: 已知递推式求第N项的O(logN)算法 (递推式转化为矩阵)
synapse7
博客等级 码龄14年 432粉丝 701原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值