hdu4565之矩阵快速幂

 

So Easy!

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 813    Accepted Submission(s): 226

Problem Description
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 easy! 

 

Input
There are several test cases, each test case in one line contains four positive integers: a, b, n, m. Where 0< a, m < 2 15, (a-1) 2< b < a 2, 0 < b, n < 2 31.The input will finish with the end of file.

 

Output
For each the case, output an integer S n.

 

Sample Input
2 3 1 2013 2 3 2 2013 2 2 1 2013

 

Sample Output
4 14 4

详解在这: http://blog.csdn.net/ljd4305/article/details/8987823

 

另外Cn=(a+sqrt(b))^n+(a-sqrt(b))^n =>Cn*(a+sqrt(b) + a-sqrt(b))=(a+sqrt(b))^(n+1)+(a-sqrt(b))^(n+1)+(a*a-b)*(a+sqrt(n))^(n-1)+(a*a-b)*(a-sqrt(b))^(n-1)=C(n+1) + (a*a-b)C(n-1) =>C(n+1)=2a*Cn+(b-a^2)*C(n-1)

 

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<iomanip>
#define INF 99999999
using namespace std;const int MAX=10;
__int64 array[2][2],sum[2][2];void MatrixMult(__int64 a[2][2],__int64 b[2][2],__int64 mod){__int64 c[2][2]={0};for(int i=0;i<2;++i){for(int j=0;j<2;++j){for(int k=0;k<2;++k){c[i][j]+=a[i][k]*b[k][j];}}}for(int i=0;i<2;++i){for(int j=0;j<2;++j)a[i][j]=c[i][j]%mod;}
}__int64 Matrix(__int64 a,__int64 b,__int64 k,__int64 mod){array[0][0]=a%mod,array[0][1]=(b%mod+mod)%mod;array[1][0]=1,array[1][1]=0;sum[0][0]=sum[1][1]=1;sum[0][1]=sum[1][0]=0;while(k){if(k&1)MatrixMult(sum,array,mod);MatrixMult(array,array,mod);k>>=1;}return (a*sum[0][0]+2*sum[0][1])%mod;
}int main(){__int64 a,b,n,m;while(scanf("%I64d%I64d%I64d%I64d",&a,&b,&n,&m)!=EOF){if(n == 0)printf("I64d\n",1%m);else if(n == 1)printf("%I64d\n",2*a%m);else printf("%I64d\n",Matrix(2*a,b-a*a,n-1,m));}return 0;
} 


 

 

转载于:https://www.cnblogs.com/dyllove98/p/3239016.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Red Hat Enterprise Linux Server release 7.0双系统安装

2019独角兽企业重金招聘Python工程师标准>>> Red Hat Enterprise Linux Server release 7.0双系统安装 1.RedHat 公司的企业版7.0已经发布了。下面介绍一下在7.0下装双系统的步骤。 安装前系统&#xff1a;WIN7 要安装的第二个系统:RedHat Enterprise 7.0 请注意&am…

Android的按钮单击事件及监听器的实现方式

2019独角兽企业重金招聘Python工程师标准>>> 第一种&#xff1a;匿名内部类作为事件监听器类 大部分时候&#xff0c;事件处理器都没有什么利用价值&#xff08;可利用代码通常都被抽象成了业务逻辑方法&#xff09;&#xff0c;因此大部分事件监听器只是临时使用一…

Sublime text在Linux下的安装与配置

以下内容源于网络资源的整理&#xff0c;如有侵权请告知删除。文章内容主要整理源&#xff1a;C语言中文网&#xff1a;C语言程序设计门户网站(入门教程、编程软件)。 一、安装Sublime text 安装方法有两种&#xff1a;利用软件包管理工具安装&#xff0c;利用下载好的软件包进…

在Spring中使用JTA事务管理

2019独角兽企业重金招聘Python工程师标准>>> Spring 通过AOP技术可以让我们在脱离EJB的情况下享受声明式事务的丰盛大餐&#xff0c;脱离Java EE应用服务器使用声明式事务的道路已经畅通无阻。但是很大部分人都还认为脱离Java EE应用服务器就无法使用JTA事务&#x…

第一季7:海思的根文件系统的概览与制作

一、根文件系统理论 关于根文件系统的原理&#xff0c;可以参看以下博客。 根文件系统的原理 使用BusyBox制作根文件系统的理论分析 二、海思的根文件系统 1、海思的根文件系统体现在Hi3518E_SDK_V1.0.3.0\package\rootfs_uclibc目录。 而根文件系统大部分工作由etc/init.d/…

第一季8:完整版(即包含mpp)根文件系统的制作

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、概述 mpp是海思编写的与视频编解码有关的驱动、库等内容。我们需要部署这些内容&#xff0c;也就是把这些内容放在合适的目录位置。 二、mpp的目录结构 mpp目录位于Hi3518E_SDK_V1.0.3.0\pack…

计算机三级会保研加分吗,366所高校有保研资格,除了对成绩有要求外,还有哪些要求?...

文&#xff5c;冷丝栏目&#xff5c;考研录取我国本科院校有1000余所&#xff0c;具有保研资格的高校有366所&#xff0c;这些高校也是在不同年份按照不同批次获得保研资格。(本文文末附录全部高校名单)推免制度最初的目的上为了提高招生工作的质量&#xff0c;并且加大培养拔尖…

第一季8:sample_venc.c的编译和测试

注意&#xff0c;以下内容基于前面完整版的根文件系统&#xff0c;因此需要先完成前面的步骤。 1、明确sample文件夹的位置 海思SDK有很多sample&#xff0c;以方便开发人员的参阅。sample文件夹位于/package/mpp/目录下。 其中/package/mpp/sample/venc目录完成了视频的采集以…

计算机电缆 耐火,耐火计算机电缆ZR-NH-DJVVP

耐火计算机电缆ZR-NH-DJVVP低烟无卤阻燃计算机电缆用途&#xff1a;本电缆具有低压电容和低电感&#xff0c;并具有良好屏蔽性能和抗干扰性能&#xff0c;因而防爆性能优于一般计算机电缆和控制电缆&#xff0e;它适用于有防爆要求场合的集散系统和自动化检测控制等要求低烟无卤…

Linux 安装Resin4.0.40

一、Resin简介Resin官网地址&#xff1a;http://caucho.com/ Resin源码包下载地址&#xff1a;http://caucho.com/products/resin/downloadResin是CAUCHO公司的产品&#xff0c;是一个非常流行的支持servlets和jsp的引擎&#xff0c;速度非常快。Resin本身包含了一个支持HTTP/1…

第二季2:视频缓存池的简介

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、视频缓存池的概念 &#xff08;1&#xff09;视频的本质是多帧图片&#xff0c;图片的本质是RGB或rawRGB数据&#xff0c;视频要占用一段连续内存。 &#xff08;2&#xff09;视频的裁剪、缩…

C#中的字符串

1. 值类型与引用类型比较classProgram { staticvoid Main() { int a 9; //给变量a赋值为9 int b a; //将a的副本给变量b b 10; Console.WriteLine(string.Format("a{0},b{1}", a, b)); Person ZS newPerson(); //张三 ZS.Age 99; //张三…

初二计算机辅导记录,信息技术指导老师的讲课笔记十篇(2)

2.教师观念转变多数学生可深入学习新课改模式&#xff0c;积极转变自己的理念&#xff0c;能够在教学上推动角色的转变&#xff0c;成为教师学习的引导者、组织者、合作者。如龙北四小一年级数学老师刘阳让学员观察统计表&#xff0c;提出数学难题&#xff0c;并进行计算&#…

linux nfs配置

这节我们介绍NFS的相关概念&#xff0c;以及如何配置NFS和在客户端中查看NFS。NFS的配置过程很简单。在服务器端中编辑/etc/exports文件&#xff0c;添加如下内容&#xff1a;/home/nfs-share 192.168.1.122 *(rw,sync) 第一项是要共享的目录&#xff0c;后者为共享的配置参…

1080i、1080p、2K、4K是什么意思?

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 一、数字后面的字母含义 “I”指的是“Interlaced scanning”&#xff0c;即隔行扫描&#xff1b;P指的是“progressive scanning”&#xff0c;即逐行扫描。这两个概念是需要电子枪进行扫描的大背头电视的…

Zabbix中文模式:图片下面的字符乱码

2019独角兽企业重金招聘Python工程师标准>>> Zabbix默认字体放在安装目录的fonts下&#xff1a; # ll fonts/ total 21288 -rw-r--r-- 1 www www 21767952 Jun 11 2009 DejaVuSans.ttf 从windows机器上拷贝一个字体替换掉就可以了&#xff0c;如使用"微软雅黑…

计算机常用存储芯片分为内存和什么,计算机类论文范例,与安徽省计算机一级考试宝典相关研究生毕业论文开题报告范文...

计算机类论文范例,与安徽省计算机一级考试宝典相关研究生毕业论文开题报告范文关于计算机及计算机系统及山东自考方面的免费优秀学术论文范文&#xff0c;计算机类论文答辩开场白,关于安徽省计算机一级考试宝典相关论文范例&#xff0c;对写作计算机论文范文课题研究的大学硕士…

简单实用的二级树形菜单hovertree

原创 hovertree是一个仿京东的树形菜单jquery插件&#xff0c;暂时有银色和绿色两种。官方网址&#xff1a;http://keleyi.com/jq/hovertree/欢迎下载使用查看绿色效果&#xff1a;http://keleyi.com/jq/hovertree/hovertreegreen.htm可以设置菜单宽度(width)&#xff0c;还可以…

xp系统一直跳出宽带连接服务器,XP系统网络问题解决方案

XP系统网络问题解决方案随着国内 Internet 的普及和信息产业的深化&#xff0c;近几年宽带网络的发展尤为迅速。下面是小编整理的一些生活上Windows XP网络故障的解决方案&#xff0c;希望对你有帮助!故障1&#xff1a;本地连接受限制或无连接很多用户发现&#xff0c;当每次进…

SQL Server 错误18456

第一步、 错误发生的场景 第二步、 找到引起错误的原因 第1步、 查看windows日志文件。 运行中输入 eventvwr (event viewer)打开日志文件查看器, 第三步、 解决方案&#xff0c;由第二步我们可以看出是SQL Server的认证模式引起了问题&#xff0c;所以只要把它改一下就可以…