题意:略

构造出矩阵就行了

|   AX   0    AXBY   AXBY       0  |

                                                                      |   0     BX    AYBX    AYBX    0  |

{a[i-1]   b[i-1]   a[i-1]*b[i-1]  AoD[i-1]  1}*        |   0     0      AXBX      AXBX   0  |  = {a[i]   b[i]   a[i]*b[i]  AoD[i]  1}

                                                                      |   0    0     0           1              0    |

                                                                      |  AY    BY   AYBY   AYBY     1   |

#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define LL __int64
#define N 5
#define m 1000000007
struct node{
LL mat[N][N];
node operator *(const node &x){
node tmp;
memset(tmp.mat,0,sizeof(tmp.mat));
for(int i=0;i<N;i++)
for(int k=0;k<N;k++)
if(mat[i][k])
for(int j=0;j<N;j++){
tmp.mat[i][j]+=(mat[i][k]*x.mat[k][j])%m;
tmp.mat[i][j]%=m;
}
return tmp;
}
}cat,b;
void _pow(LL n){
while(n){
if(n&1)
b=b*cat;
cat=cat*cat;
n>>=1;
}
//return b;
}
int main(int argc, char** argv) {
LL a0,ax,ay,b0,bx,by;
LL n;
while(scanf("%I64d",&n)!=EOF){
scanf("%I64d%I64d%I64d",&a0,&ax,&ay);
scanf("%I64d%I64d%I64d",&b0,&bx,&by);
//printf("!%I64d %I64d %I64d\n",a0,ax,ay);
//printf("!%I64d %I64d %I64d\n",b0,bx,by);
memset(cat.mat,0,sizeof(cat.mat));
cat.mat[3][0]=cat.mat[4][4]=cat.mat[0][0]=1;
cat.mat[1][1]=ax;
cat.mat[4][1]=ay;
cat.mat[2][2]=bx;
cat.mat[4][2]=by;
cat.mat[1][3]=ax*by%m;
cat.mat[2][3]=ay*bx%m;
cat.mat[3][3]=ax*bx%m;
cat.mat[4][3]=ay*by%m;
b.mat[0][0]=0;
b.mat[0][1]=a0;
b.mat[0][2]=b0;
b.mat[0][3]=a0*b0%m;
b.mat[0][4]=1;
_pow(n);
printf("%I64d\n",b.mat[0][0]); } return 0;
}

hdu 4686 Arc of Dream_矩阵快速幂的更多相关文章

  1. hdu 4686 Arc of Dream(矩阵快速幂)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4686 题意: 其中a0 = A0ai = ai-1*AX+AYb0 = B0bi = bi-1*BX+BY ...

  2. HDU 4686 Arc of Dream 矩阵快速幂,线性同余 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=4686 当看到n为小于64位整数的数字时,就应该有个感觉,acm范畴内这应该是道矩阵快速幂 Ai,Bi的递推式题目 ...

  3. hdu 5667 BestCoder Round #80 矩阵快速幂

    Sequence  Accepts: 59  Submissions: 650  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536 ...

  4. HDU4686——Arc of Dream矩阵快速幂

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4686 题目大意: 已知a0=A0, ai=Ax*ai-1+Ay; b0=B0, bi=Bx*bi-1 ...

  5. HDU4686 Arc of Dream 矩阵快速幂

    Arc of Dream Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Tota ...

  6. HDU - 4990 Reading comprehension 【矩阵快速幂】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4990 题意 初始的ans = 0 给出 n, m for i in 1 -> n 如果 i 为奇 ...

  7. HDU 1005 Number Sequence:矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 题意: 数列{f(n)}: f(1) = 1, f(2) = 1, f(n) = ( A*f(n ...

  8. S - Arc of Dream 矩阵快速幂

    An Arc of Dream is a curve defined by following function: where a 0 = A0 a i = a i-1*AX+AY b 0 = B0  ...

  9. HDU 2604 Queuing( 递推关系 + 矩阵快速幂 )

    链接:传送门 题意:一个队列是由字母 f 和 m 组成的,队列长度为 L,那么这个队列的排列数为 2^L 现在定义一个E-queue,即队列排列中是不含有 fmf or fff ,然后问长度为L的E- ...

随机推荐

  1. C语言的本质(34)——静态库

    库是一种软件组件技术,库里面封装了数据和函数. 库的使用可以使程序模块化. Windows系统包括静态链接库(.lib文件)和动态链接库(.dll文件). Linux通常把库文件存放在/usr/lib ...

  2. Kindeditor+web.py+SAE Storage 实现文件上传 - 开源中国社区

    Kindeditor+web.py+SAE Storage 实现文件上传 - 开源中国社区 Kindeditor+web.py+SAE Storage 实现文件上传

  3. Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008

    Oleg Sych - » Pros and Cons of T4 in Visual Studio 2008 Pros and Cons of T4 in Visual Studio 2008 Po ...

  4. java没有条件编译

    摘自http://maosidiaoxian.iteye.com/blog/1290740 条件编译绝对是一个好东西.如在C或CPP中,可以通过预处理语句来实现条件编译.代码如下: #IFDEF DE ...

  5. C#向文件写、读数据

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. 总结一下用caffe跑图片数据的研究流程

    近期在用caffe玩一些数据集,这些数据集是从淘宝爬下来的图片.主要是想研究一下对女性衣服的分类. 以下是一些详细的操作流程,这里总结一下. 1 爬取数据.写爬虫从淘宝爬取自己须要的数据. 2 数据预 ...

  7. Android应用程序与SurfaceFlinger服务的关系概述和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7846923 SurfaceFlinger服务负 ...

  8. PC和ARM平台编译Qt的命令

    编译for PC 的Qt过程是: (1)qmake -project (qmake命令,用于创建hello.pro,将所有的文件编译成一个与平台无关的工程文件).(注意:按照前面步骤安装好Qt环境之后 ...

  9. phantomjs API

    phantomjs使用说明         phantomjs实现了一个无界面的webkit浏览器.虽然没有界面,但dom渲染.js运行.网络访问.canvas/svg绘制等功能都很完备,在页面抓取. ...

  10. iOS 使用NJKWebViewProgress做webview进度条

    NJKWebViewProgress地址:https://github.com/ninjinkun/NJKWebViewProgress 导入头文件 #import "NJKWebViewP ...