博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1597(矩阵快速幂)
阅读量:5039 次
发布时间:2019-06-12

本文共 1767 字,大约阅读时间需要 5 分钟。

1597: 薛XX后代的IQ

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 228  Solved: 55
[][][]

Description

薛 XX的低IQ是个令人头疼的问题,他的队友深受其害。幸运的是,薛XX非常有钱,所以他买了一些可以提高他的后代的IQ的药。这种药有三个属性,A,B和 P。当薛XX使用这种药的时候,他的基因会发生变化,所以他的儿子的IQ也会跟着变化。假设薛XX的父亲的IQ为X,薛XX自己的IQ为Y,那么薛XX的 儿子的IQ为(A*X+B*Y) mod P。薛XX的孙子的IQ依次类推。

现在给定X和Y,还有药的属性A、B和P,现在他想知道他的N代子孙的IQ(儿子是第一代,孙子是第二代)。

Input

第一行包含一个整数T(T<=100),表示数据组数

每组数据只有一行,包含六个整数X,Y,A,B,P,N(1 ≤ X, Y ≤ 300,1 ≤ A, B ≤ 30, 1≤ P ≤ 300 , 1 ≤ N < 1000000000),含义如题目所述

Output

对于每组数据,输出答案

Sample Input

4180 80 1 1 190 1189 83 2 2 190 1189 83 1 1 190 2 172 73 23 19 273 9999

Sample Output

70164165233 矩阵快速幂,构造矩阵 f[i+1] = a*f[i-1]+b*f[i] . 特征矩阵为 {
{b,a},{1,0}}.
#include 
#include
#include
#include
#include
using namespace std;typedef long long LL;struct Maxtri{ int v[2][2];};int X,Y,a,b,p,n;Maxtri mult(Maxtri a,Maxtri b){ Maxtri c; for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ c.v[i][j] = 0; for(int k=0;k<2;k++){ c.v[i][j] = (a.v[i][k]*b.v[k][j]%p+c.v[i][j])%p; } } } return c;}Maxtri pow_mod(Maxtri ma,int n){ Maxtri ans; ans.v[0][0] = ans.v[1][1] = 1; ans.v[0][1] = ans.v[1][0] = 0; while(n){ if(n&1) ans = mult(ans,ma); ma = mult(ma,ma); n>>=1; } return ans;}int main(){ int tcase; scanf("%d",&tcase); while(tcase--) { scanf("%d%d%d%d%d%d",&X,&Y,&a,&b,&p,&n); Maxtri ori ; ori.v[0][0] = b,ori.v[0][1] = a; ori.v[1][0] = 1,ori.v[1][1] = 0; Maxtri ans = pow_mod(ori,n); printf("%d\n",(ans.v[0][0]*Y+ans.v[0][1]*X)%p); } return 0;}

 

转载于:https://www.cnblogs.com/liyinggang/p/5784745.html

你可能感兴趣的文章
java 字符串转json,json转对象等等...
查看>>
极客前端部分题目收集【索引】
查看>>
第四天 selenium的安装及使用
查看>>
关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)...
查看>>
KMPnext数组循环节理解 HDU1358
查看>>
android调试debug快捷键
查看>>
【读书笔记】《HTTP权威指南》:Web Hosting
查看>>
Inoodb 存储引擎
查看>>
数据结构之查找算法总结笔记
查看>>
Linux内核OOM机制的详细分析
查看>>
Android TextView加上阴影效果
查看>>
Requests库的基本使用
查看>>
C#:System.Array简单使用
查看>>
C#inSSIDer强大的wifi无线热点信号扫描器源码
查看>>
「Foundation」集合
查看>>
算法时间复杂度
查看>>
二叉树的遍历 - 数据结构和算法46
查看>>
类模板 - C++快速入门45
查看>>
[转载]JDK的动态代理深入解析(Proxy,InvocationHandler)
查看>>
centos7 搭建vsftp服务器
查看>>