hdu4565 So Easy!(矩阵快速幂)

线性代数学习笔记(十)——矩阵运算(二) 本篇笔记讲解矩阵的幂运算和矩阵的转置,其中矩阵进行幂运算的前提是矩阵为方阵,矩阵幂运算的两条性质与数的幂运算规则类似;矩阵转置的定义与行列式转置类似,但要注意由于矩阵的行数和列数不同,所以转置之后行数和列数变换。 阅读详情
题意:
告诉你a,b,n,m,求

0<a,m<2^15 , (a-1)^2<b<a^2 , 0<b,n<2^31
解题思路:
    我们首先对(a+sqrt(b))^n进行处理,由a+sqrt(b))^n的展开式我们可以知道
(a+sqrt(b))^n = Xn + Yn * sqrt(b);
那么
( a + sqrt( b ) )^( n + 1 ) = ( a + sqrt( b ) ) * ( Xn + Yn * sqrt(b) ) = ( a * Xn + b * Yn ) + ( a * Yn + Xn ) * sqrt( b );
则
Xn+1 = ( a * Xn + b * Yn )
Yn+1 = ( a * Yn + Xn )
将其转化为矩阵,则

递推下去可以得到

所以
Xn = a * X0 + b * Y0;
Yn = X0 + a * Y0;

由于 (a-1)^2<b<a^2 ,
那么 0 < ( a - sqrt( b ) )^ n < 1
 又  ( a + sqrt( b ) )^ n + ( a - sqrt( b ) )^ n = 2 * Xn
那么 ( a + sqrt( b ) )^ n 向上取整的值就是 2 * Xn
最终
    Sn = ( 2 * Xn )% m;

参考代码:
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
typedef long long ll;
struct Matrix{
	ll mat[2][2];
};
Matrix mul(Matrix a,Matrix b,ll mod){
	Matrix ans;
	for (int i=0;i<2;i++){
		for (int j=0;j<2;j++){
			ans.mat[i][j]=0;
			for (int k=0;k<2;k++){
				ans.mat[i][j]=(ans.mat[i][j]+a.mat[i][k]*b.mat[k][j]);
				ans.mat[i][j]%=mod;
			}
		}
	}
	return ans;
}
Matrix Init(){
	Matrix ans;
	for (int i=0;i<2;i++){
		for (int j=0;j<2;j++){
			if (i==j)
				ans.mat[i][j]=1;
			else
				ans.mat[i][j]=0;
		}
	}
	return ans;
}
Matrix exp(Matrix a,ll k,ll m){
	Matrix ans=Init();
	while (k){
		if (k&1)
			ans=mul(ans,a,m);
		a=mul(a,a,m);
		k>>=1;
	}
	return ans;
}
int main(){
	Matrix M;
	ll a,b,n;
	ll m;
	while (~scanf("%lld%lld%lld%lld",&a,&b,&n,&m)){
		M.mat[0][0]=M.mat[1][1]=a;
		M.mat[0][1]=b;
		M.mat[1][0]=1;
		Matrix ans=exp(M,n,m);
		/*
		for (int i=0;i<2;i++){
			for (int j=0;j<2;j++)
				cout<<ans.mat[i][j]<<" ";
			cout<<endl;
		}
		*/
		ll x=ans.mat[0][0];

		cout<<(2*x)%m<<endl;
	}
	return 0;
}

Ubuntu声卡检测与故障排查:从基础命令到驱动修复 本文详细介绍了在Ubuntu系统中进行声卡检测与故障排查的完整流程。从使用lspci、aplay等基础命令识别硬件,到排查驱动冲突、修复权限问题,再到调整PulseAudio高级配置,提供了一套系统性的解决方案。文章结合实战案例,帮助用户快速诊断并解决Ubuntu系统常见的“无声”问题,恢复音频功能。 阅读详情

相关推荐

骗分导论 CSP、NOIP、蓝桥杯、PAT、USACO等竞赛的算法骗分技巧 轻松省三

问题来了,那么多座桥,炸一座就破坏岛屿的联系,可能性微乎其微(除非特别设计数据)。它们的价值极大,不仅能初步帮你检验程序的对错,而且,如果你不会做这道题,你就可以直接输出样例!在OI考试中最后难的题数据最后的几个,他们往往不会创造新的数据,此时就可以直接输出最后几个数据了。需要运用《骗分导论》第3章中学到的知识,先写出朴素算法,然后造一些数据,可能就会发现规律。有些时候,问题的答案可能很有特点:对于大多数情况,答案是一样的。据说,在NOIP2013中,有人最后一题不会,愤然打了个随机数,结果得了。

星卯教育-信奥教练tony 6403

So Easy! HDU - 4565(构造共轭+矩阵快速幂)

So Easy! HDU - 4565 A sequence S n is defined as: Sn=⌈(a+b√)n⌉%mSn=⌈(a+b)n⌉%mS_n = \lceil(a+\sqrt{b})^n\rceil\%m Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. Y...

codeswarrior的博客 432

态路小课堂丨三款800G光模块方案介绍—SR8/DR8/2FR4

800G QSFP-DD 2FR4光模块使用CWDM4波长(1271/1291/1311/1331nm),单通道速率为100G,通过MUX减小光纤的数目,其光学接口采用CS接口或双芯LC接口。

poposu的博客 2386

hdu 4565(矩阵快速幂)

题意:给出a,b,n,m按如下公式计算输出Sn 题解:和之前做过的一题很像,推导公式如下 (a+根号b)^n = xn + yn×根号b –> (xn-1 + yn-1×根号b)×(a+根号b) = (a*xn-1 + b*yn-1) + (xn-1 + a×yn-1)×根号b然后写成矩阵形式后(a-根号b)^n = xn - yn×根号bxn+yn×根号b = xn+yn×根号b +

俯瞰风景 689

[NVME] CMBLOC-Controller Memory Buffer Location

CMBLOC-Controller Memory Buffer Location

jinyuya的博客 988

OpenSceneGraph编译、安装、开发环境

详细描述WIndows 10下使用Visual Studio 2019编译OpenSceneGraph 3.6.5的操作流程

国产CAx(CAD/CAE/CAM)软件研发 8771

hdu-4565(矩阵快速幂+推导)

问题描述: A sequence S n is defined as:Sn=[(a+sqrt(b))^(n)] % m,其中[ ] 表示向下取整. Input  There are several test cases, each test case in one line contains four positive integers: a, b, n, m. Where 015,

wust_cyl的博客 779

第一百三十九回 介绍三个BLE包

本章回中主要介绍了Flutter中BLE的概念和操作方法,主要介绍了三个BLE包的功能和差异,以方便大家在BLE操作中选择不同的包。

talk_8的专栏 574

hdu4565 矩阵构造+矩阵快速幂

第一眼看到就是矩阵快速幂,当然不能拿浮点数来快速幂了,要转化一下。

chenhongwei6447的博客 425

YOLO12涨点改进| 损失函数改进篇 |AAAI 2025| 一种小目标检测SDLoss损失函数,解决现有损失函数对不同目标尺度敏感度不足的局限,提高了网络检测不同尺度目标的敏感能力,助力高效涨点

本文提出了一种改进的小目标检测方法SDLoss,通过动态调整尺度损失与位置损失的权重,优化了YOLOv12模型的性能。针对红外小目标检测中存在的两个主要问题:1)标准卷积难以捕捉目标的高斯空间分布特性;2)现有损失函数对不同尺度目标的敏感度不足,研究团队开发了Pinwheel-shaped卷积(PConv)和Scale-based Dynamic损失函数(SDLoss)。PConv通过不对称卷积核设计显著提升感受野,SDLoss则根据目标大小动态平衡尺度与位置损失的影响。

Ai缝合怪、助力小伙伴高效发论文 237

AI智能体在零售行业的5大变革性应用

本文旨在全面介绍AI智能体在零售行业的关键应用场景,分析其技术原理和商业价值,帮助读者理解这些技术如何改变传统零售模式。文章将从核心概念入手,逐步深入五大应用场景的技术实现,最后探讨未来趋势和挑战。AI智能体:能够感知环境、做出决策并执行行动的智能软件实体机器学习:让计算机从数据中学习模式而无需显式编程的技术深度学习:基于神经网络的机器学习方法,能够处理复杂模式识别核心概念回顾AI智能体是零售数字化转型的关键驱动力从推荐系统到库存管理,AI正在重塑每个零售环节。

AI 原生应用开发的博客 1350

HDU - 4565 So Easy!(共轭构造+推公式+矩阵快速幂)

题目链接:点击查看 题意:给出a,b,m,n,求 解析:题意一目了然,此题的关键是推出解决问题的公式。 首先,题目要求括号内n次方后向上取整再模m,而这里给到的a与b的关系接下来也会用到:<b< 我们按照共轭构造的形式,构造出=,= 再设=+,由于共轭的性质,易知为整数,又因为<b<,得到0<<1,所以0<<1,题目中要求的向上取整所得...

Falcon的博客 624

复现论文《大规模风电场电磁暂态高效建模仿真方法》

本文提出了一种针对大规模风电场电磁暂态(EMT)仿真的高效建模方法。通过三种关键技术实现仿真加速:(1)永磁直驱风电机组一体化等效建模,采用节点导纳矩阵降维将25节点机组简化为4端子电路,仿真速度提升1-3个数量级;(2)基于戴维南/诺顿等效和OpenMP并行计算的风电场整体建模,通过串并联叠加实现节点收缩,30台机组仿真加速近万倍;(3)受控源映射解耦方法提高故障仿真灵活性。复现代码展示了核心算法实现,包括导纳矩阵Schur补降维、多进程并行计算框架以及受控源解耦方法。

huanghm88的专栏 277

矩阵快速幂 HDU 4565 So Easy!(简单?才怪!)

题目链接 题意:    思路:   直接拿别人的图,自己写太麻烦了~      然后就可以用矩阵快速幂套模板求递推式啦~ 另外:   这题想不到或者不会矩阵快速幂,根本没法做,还是2013年长沙邀请赛水题,也是2008年Google Codejam Round 1A的C题。 #include <bits/stdc++.h> typedef long l...

weixin_34050427的博客 76

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

HDU-4565 So Easy!(数学&&矩阵快速幂)

貌似去年网络赛还是多校见过类似的题,但是没有补题,所以依旧不会,只记得见过... 这题只难在推导递推公式,其他还好吧,看到这个数学推导,发现高中真是虚度,什么都不会 详细推导过程:http://blog.youkuaiyun.com/ljd4305/article/details/8987823

idealism_xxm的专栏 734

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

HDU4565 So Easy!

1 /* 2 HDU4565 So Easy! 3 http://acm.hdu.edu.cn/showproblem.php?pid=4565 4 数论 快速幂 矩阵快速幂 5 题意:求[(a+sqrt(b))^n ]%m [ ]代表向上取证 6 联想到斐波那契数列,所以第一感觉是矩阵快速幂 7 后来发现根本不用这么麻烦,我们认为...

dianan9456的博客 263

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

hdu4565 So Easy!(矩阵快速幂)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4565 题解:(a+√b)^n=xn+yn*√b,(a-√b)^n=xn-yn*√b, (a+√b)^n=2*xn-(a-√b)^n,(0<=a-√b<=1),所以整数部分就是2*xn 然后再利用两个公式 (a+√b)^(n+1)=(a+√b)*(xn+yn*√b) ...

awow80285的博客 138

【HDU4565】So Easy!

【HDU4565】So Easy! 题面 要你求 \[ \lceil (a+\sqrt b)^n \rceil \% m \] 其中\(0<a,m<2^{15},(a-1)^2<b<a^2,0<b,n<2^{31}\) 题解 这个向上取整放在这里很丑对吧,我们化一下柿子。 \[ \because (a-1)^2<b<a^2\\ \there...

112

hdu 4565 So Easy! 共轭构造+斐波那契矩阵加速

hdu 4565 参考题解:hdu 4565 So Easy! (共轭构造+矩阵快速幂) 题意:求值。 思路:根据可构造共轭方程,因为共轭,所以一定是整数,而且由知,所以可以忽略不计。 进行一些变换: 这样问题就转化成了快速求斐波那契数列第n项的问题。 /**************************************************** >Create

AngelBeats! 697

HDU4565 So Easy! —— 共轭构造、二阶递推数列、矩阵快速幂

题目链接:https://vjudge.net/problem/HDU-4565 So Easy! Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5525Accepted Submission(s): 1841...

alince20008的博客 200

矩阵快速幂-So Easy! HDU - 4565

矩阵快速幂-So Easy! HDU - 4565 题目: A sequence S n is defined as: Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. You are to calculate S n.   You, a top coder, say: So ea...

njuptACMcxk的博客 330

HDU 4565 So Easy!(数学+矩阵快速幂)

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4565 Description   A sequence S n is defined as:  Where a, b, n, m are posit

... 612

【构造共轭函数+矩阵快速幂】HDU 4565 So Easy! (2013 长沙赛区邀请赛)

【解题思路】 给一张神图,推理写的灰常明白了,关键是构造共轭函数,这一点实在是要有数学知识的理论基础,推出了递推式,接下来就是矩阵的快速幂了。 神图: 给个大神的链接:构造类斐波那契数列的矩阵快速幂 /* * Problem: HDU No.4565 * Running time: 62MS * Complier: G++ * Author: javaher...

airen6935的博客 177

HDU 4565 So Easy! 矩阵快速幂

设(a+sqrt(b))^n为(Xn + Yn*sqrt(b)),那么显然有(a+sqrt(b))^(n+1) 为 (a*Xn + b*Yn + (aYn+Xn)*sqrt(b))。 那么显然有(a+sqrt(b))的Xn,Yn可以表示为 : 然后又会发现,(a-sqrt(6))^n可以表示为: 那么会发现(a+sqrt(b))^n = (a+sqrt(b))^n + (a-

自在飞花 968

hdu 4565 So Easy! 矩阵快速幂

证明见:http://blog.youkuaiyun.com/crazy______/article/details/9021169 之后就是矩阵快速幂了 #include #include #include const int N=2; typedef long long LL; struct Matrix{ int a[N][N]; void init(){ memse

dimhat的专栏 598

20130707 hdu4565 So Easy! 数学头脑+矩阵快速幂

教训: 因为: 1.矩阵中会牵扯到负数 2.牵扯到取模 所以:最后的结果可能为负!要记得调整成正的!!! hdu4565 Fn=(a+sqrt(b))^n+(sqrt(b)-a)^n  是整数!就等于Sn。 F(0) = 2, F(1) = 2*a. 特征根就是 lamda = a+(-)sqrt(b) 递推方程是F(n+2) + (-2a) F(n+1) + (a^2-b)F(

Jessi_Rabbit的窝 304
上一篇: poj3264 Balanced Lineup(求区间的最大值与最小值之差)
下一篇: poj2528 Mayor's posters(线段树,离散化)
JinbaoSite0144
博客等级 码龄12年 231粉丝 157原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值