HDU4565
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4565
题目大意:
给出a,b,n,m,求出下式中的 Sn.
解题思路:
AC代码:
1 #include <cstdio> 2 #include <cstring> 3 4 using namespace std; 5 typedef long long ll; 6 struct Matrix{ 7 ll mat[2][2]; 8 }; 9 Matrix Multiply(Matrix x,Matrix y,ll mod){ 10 Matrix temp; 11 memset(temp.mat,0,sizeof(temp.mat)); 12 for(int i=0;i<2;i++){ 13 for(int j=0;j<2;j++){ 14 for(int k=0;k<2;k++){ 15 temp.mat[i][j]+=(x.mat[i][k]*y.mat[k][j]); 16 temp.mat[i][j]%=mod; 17 } 18 } 19 } 20 return temp; 21 } 22 Matrix Fast_Power(Matrix a,ll m,ll mod){ 23 Matrix res; 24 memset(res.mat,0,sizeof(res.mat)); 25 for(int i=0;i<2;i++) res.mat[i][i]=1; 26 while(m){ 27 if(m&1) res=Multiply(res,a,mod); 28 m>>=1; 29 a=Multiply(a,a,mod); 30 } 31 return res; 32 } 33 int main() 34 { 35 ll a,b,n,m; 36 while(scanf("%lld%lld%lld%lld",&a, &b, &n, &m)==4){ 37 Matrix l={ a,1, 38 0,0 }; 39 Matrix r={ a,1, 40 b,a }; 41 r=Fast_Power(r,n-1,m); 42 l=Multiply(l,r,m); 43 printf("%lld\n",(l.mat[0][0]*2)%m); 44 } 45 return 0; 46 }
“这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。”
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理