hdu4565
- #include<iostream>
- #include<cstdio>
- #include<queue>
- #include<algorithm>
- #include<cmath>
- #include<ctime>
- #include<set>
- #include<map>
- #include<stack>
- #include<cstring>
- #define inf 2147483647
- #define ls rt<<1
- #define rs rt<<1|1
- #define lson ls,nl,mid,l,r
- #define rson rs,mid+1,nr,l,r
- #define N 100010
- #define For(i,a,b) for(long long i=a;i<=b;i++)
- #define p(a) putchar(a)
- #define g() getchar()
- using namespace std;
- long long aa,bb,n,mod,tt;
- double t;
- struct matrix{
- long long a[];
- long long b[][];
- matrix operator *(const matrix&c)const{
- matrix r;
- For(i,,)
- For(j,,){
- r.b[i][j]=;
- For(k,,)
- r.b[i][j]=(r.b[i][j]+b[i][k]*c.b[k][j]%mod)%mod;
- }
- return r;
- }
- }a;
- void in(long long &x){
- long long y=;
- char c=g();x=;
- while(c<''||c>''){
- if(c=='-')y=-;
- c=g();
- }
- while(c<=''&&c>=''){
- x=(x<<)+(x<<)+c-'';c=g();
- }
- x*=y;
- }
- void o(long long x){
- if(x<){
- p('-');
- x=-x;
- }
- if(x>)o(x/);
- p(x%+'');
- }
- matrix ksm(matrix a,long long b){
- matrix r=a;
- b--;
- if(b==) return r;
- while(b%==){
- a=a*a;
- b>>=;
- }
- while(b>){
- if(b%==)
- r=r*a;
- a=a*a;
- b>>=;
- }
- return r;
- }
- int main(){
- while(cin>>aa>>bb>>n>>mod){
- if(n==){
- o((long long)%mod);p('\n');
- continue;
- }
- a.a[]=;
- a.a[]=;
- a.b[][]=aa%mod;
- a.b[][]=bb%mod;
- a.b[][]=;
- a.b[][]=aa%mod;
- matrix r,ans;
- r=ksm(a,n);
- For(i,,){
- ans.a[i]=;
- For(k,,)
- ans.a[i]=(ans.a[i]+a.a[k]*r.b[i][k]%mod)%mod;
- }
- tt=;
- tt=(tt+ans.a[])%mod;
- o((*tt%mod+mod)%mod);p('\n');
- }
- return ;
- }
hdu4565的更多相关文章
- 【HDU4565】So Easy!
[HDU4565]So Easy! 题面 要你求 \[ \lceil (a+\sqrt b)^n \rceil \% m \] 其中\(0<a,m<2^{15},(a-1)^2<b& ...
- HDU2256&&HDU4565:给一个式子的求第n项的矩阵快速幂
HDU2256 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2256 题意:求(sqrt(2)+sqrt(3))^2n%1024是多少. 这个题算是h ...
- HDU4565 So Easy! —— 共轭构造、二阶递推数列、矩阵快速幂
题目链接:https://vjudge.net/problem/HDU-4565 So Easy! Time Limit: 2000/1000 MS (Java/Others) Memory L ...
- HDU4565 So Easy!
/* HDU4565 So Easy! http://acm.hdu.edu.cn/showproblem.php?pid=4565 数论 快速幂 矩阵快速幂 题意:求[(a+sqrt(b))^n ] ...
- (转载)HDU4565
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4565 这个博客讲的比较好:http://blog.csdn.net/ljd4305/article/d ...
- HDU4565 && 2013年长沙邀请赛A题
部分转自http://blog.csdn.net/crazy______/article/details/9021169 #include<cstdio> using namespace ...
- hdu4565 So Easy! 矩阵快速幂
A sequence Sn is defined as: Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example ...
- HDU4565(SummerTrainingDay05-C 矩阵快速幂)
So Easy! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- hdu4565矩阵快速幂
这题太坑了...刚开始以为可以用|a+sqrt(b) 1|水过...结果tle,还一直想明明我logn的做法怎么可能tle.. | 0 1| 实在无奈看的题解 (a+sqr ...
- hdu4565(矩阵快速幂+经典的数学处理)
注意题目的一个关键条件(a-1)2< b < a2 , 于是可以知道 0 < a-√b < 1 ,所以 (a-√b)^n < 1 . 然后 (a+ √b)^n+(a ...
随机推荐
- java_List接口
/** * java.util.list接口 extends Collection接口 * 1.有序的集合 * 2.有索引 * 3.元素可以重复 * * List中带索引的方法: *add:添加 * ...
- C#窗体代码相关笔记
获取ComboBox下拉列表的所有选项值 ArrayList al = new ArrayList(); foreach (string item in this.comboBox2.Items) { ...
- Java开发系列-注解
概述 在JDK5之后提供了一个新特性,和类.接口同级.定义时使用的关键字是@interface.注解主要有三个作用,分别是编译检查.替代配置文件.定义注解(元注解).分析代码(用到反射).注解的本质就 ...
- uoj349 即时战略
题意:这是一道交互题.交互库中有一棵树.一开始只有1节点已知.需要在T次询问内使得n个节点都已知.一次询问explore(x,y),返回从x到y路径上第一个点,并将返回点标记为已知. 数据有区分. 标 ...
- javaweb的几种开发模式
1.MVC模式基础 1.1.MVC模式简介 MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而达到更好的开发和维护效率.在MVC模式中 ...
- tty who 命令
#tty : 查看当前终端对应的终端的设备文件 #who : 查看当前系统登录的所有用户及其信息
- PAT甲级——A1068 Find More Coins
Eva loves to collect coins from all over the universe, including some other planets like Mars. One d ...
- eclipse memory analyzer对系统内存溢出堆文件解析0(转)
前言 在平时工作过程中,有时会遇到OutOfMemoryError,我们知道遇到Error一般表明程序存在着严重问题,可能是灾难性的.所以找出是什么原因造成OutOfMemoryError非常重要.现 ...
- c#设置文件及文件夹的属性
c#中通过FileAttributes枚举来设置文件或文件夹的属性. FileAttributes 枚举 成员名称 说明 Archive 文件的存档状态.应用程序使用此属性为文件加上备份或移除标记. ...
- EF中的DbContext类
使用先前的数据上下文,可以通过使用LINQ查询,按字母顺序检索出所有专辑,代码如下