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…

make clean与make distclean的区别

make clean&#xff1a;仅仅清除之前编译的可执行文件及配置文件。 make distclean&#xff1a;清除所有生成的文件&#xff0c;比如将由configure生成的文件全部删除掉&#xff0c;包括Makefile。 Makefile在符合GNU Makefile惯例的Makefile中&#xff0c;包含了一些基本的预…

win2008启动计算机应用配置,[计算机软件及应用]WIN2008_NAP服务器配置详解.doc

[计算机软件及应用]WIN2008_NAP服务器配置详解NAP server setting安装win 2008 操作系统&#xff0c;安装好后修改computer name为TLD4NAP服务器配置 一1,添加角色添加 Active Directory域服务2,安装Active Directory域服务路径&#xff1a;开始->”dcpromo”输入域名3,安装…

ruby 数据sql操作

ActiveRecord ActiveRecord 是 Rails 的 ORM 元件&#xff0c;負責與資料庫溝通&#xff0c;讓我們可以用物件導向的語法操作資料庫。在”打造 CRUD 應用程式”一章中提到的對應概念如下&#xff1a; 將資料庫表格(table) 對應到一個類別(classe)類別方法就是操作表格(table)將…

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

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

Sublime text在Linux下的安装与配置

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

计算机统考分数短信显示合格,今年起全省八年级网考信息技术 成绩不合格不能升高中...

4月11日&#xff0c;省教育厅正式公布我省初中信息技术学业水平考试实施办法&#xff0c;明确从2019年起全面实施初中信息技术学业水平考试&#xff0c;考试对象为八年级(初二)学生&#xff0c;考试时间为每年5月下旬。今年首次参加信息技术学业水平考试的学生为2017年秋季入学…

在Spring中使用JTA事务管理

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

Window7无法访问 Window server 2008 R2文件服务器的共享

最近碰到奇怪的问题&#xff0c;原来的R2文件服务器一直都正常&#xff0c;突然win7系统不能访问此服务器的共享了&#xff0c;Ping和远程都可以&#xff0c;而且XP系统也可以访问其共享&#xff0c;就是Win7不行&#xff0c;表现为&#xff1a;按IP访问好久没反应&#xff0c;…

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

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

破坏计算机系统既遂的标准,破坏计算机信息系统罪的量刑标准是什么

只有当我们知道了破坏计算机系统罪的定义我们才知道这个罪有多严重&#xff0c;如果触犯会受到怎样的处罚。所以破坏计算机信息系统罪实际意义是&#xff1a;某些人通过对计算机信息系统中正储存的数据&#xff0c;正在处理的数据以及正在传输的数据和针对相关的应用程序进行恶…

关于shell脚本编程一些有用资源的小结

系统维护管理过程中&#xff0c;编写一些能减轻管理负担的shell脚本是个明智的做法&#xff0c;一些例程性的事务&#xff0c;shell脚本会比手动操作高效的多。我有时也要编写一些&#xff0c;总结了一些学习及参考的shell资料&#xff0c;实用好用为主&#xff0c;大家看看有没…

五.几何对象和空间参考

几何对象是ArcGIS Engine中最基本的也是最常用的对象&#xff0c;我们所说的空间对象&#xff08;点&#xff0c;线&#xff0c;面&#xff09;都是几何对象&#xff0c;我们在删除&#xff0c;创建和进行地理分析的时候&#xff0c;就是处理一个包含几个对象的矢量图形。 Geom…

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

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

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

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

包装设计中文字字体的logo设计要注意什么

包装设计中文字字体的logo设计要注意什么 设计字体的目的&#xff0c;是要使文字既具有充分传达信息的功能&#xff0c;又与产品形式、产品功能&#xff1b;人们的审美观念达到和谐和统一。一般可根据以下几个原则进行设计。 (1)要符合包装装潢总体设计要求 包装装潢是造型、构…

每天一个小算法(Shell Sort1)

希尔排序是1959 年由D.L.Shell 提出来的&#xff0c;相对直接排序有较大的改进。希尔排序又叫缩小增量排序 基本思想&#xff1a; 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序&#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;它适用于有防爆要求场合的集散系统和自动化检测控制等要求低烟无卤…

HashMap HashTable ConcurrentHashMap

1. Hashtable 和 HashMap&#xff08;1&#xff09;区别&#xff0c;这两个类主要有以下几方面的不同&#xff1a;Hashtable和HashMap都实现了Map接口&#xff0c;但是Hashtable的实现是基于Dictionary抽象类。 在HashMap中&#xff0c;null可以作为键&#xff0c;这样的键只有…