再不能直视这道题,换INT64就过了。。。。。。。

同样可以使用矩阵的方法。构造1*5的

D[N],a[n],b[n],a【n】*b[n],1

接着你应该就会了。

#include <iostream>
#include <cstdio>
#include <algorithm>
#define LL __int64 using namespace std; const LL Mod=1000000007; struct Matrax{
LL m[6][6];
};
LL N,A0, AX, AY,B0, BX, BY; Matrax a,per; void initial(){
for(int i=0;i<5;i++){
for(int j=0;j<5;j++)
a.m[i][j]=per.m[i][j]=0;
}
for(int i=0;i<5;i++)
per.m[i][i]=1;
a.m[0][0]=a.m[3][0]=1;
a.m[1][1]=(AX); a.m[4][1]=(AY);
a.m[2][2]=(BX); a.m[4][2]=(BY);
a.m[1][3]=(AX* BY)%Mod;
a.m[2][3]=(AY* BX)%Mod; a.m[3][3]= (AX* BX)%Mod;
a.m[4][3]=(AY* BY)%Mod;
a.m[4][4]=1;
} Matrax multi(Matrax a,Matrax b){
Matrax c;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
c.m[i][j]=0;
for(int k=0;k<5;k++)
c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j])%Mod;
}
}
return c;
} Matrax quick(LL k){
Matrax ans=per,p=a;
while(k){
if(k&1){
ans=multi(ans,p);
}
k>>=1;
p=multi(p,p);
}
return ans;
} LL ts[5]; int main(){
while(scanf("%I64d%I64d%I64d%I64d%I64d%I64d%I64d",&N,&A0,&AX,&AY,&B0,&BX,&BY)!=EOF){
// while(scanf("%lld%lld%lld%lld%lld%lld%lld",&N,&A0,&AX,&AY,&B0,&BX,&BY)!=EOF){
LL tp=0;
if(N==0){ printf("0\n"); continue; }
A0%=Mod; B0%=Mod;
AX%=Mod; AY%=Mod;
BX%=Mod; BY%=Mod;
ts[0]=A0*B0%Mod;
ts[1]=(A0*AX+AY)%Mod;
ts[2]=(B0*BX+BY)%Mod;
ts[3]=(ts[1]*ts[2])%Mod;
ts[4]=1;
initial();
Matrax ans=quick(N-1);
for(int i=0;i<5;i++){
tp=(tp+ts[i]*ans.m[i][0])%Mod;
}
// printf("%lld\n",tp%Mod);
printf("%I64d\n",tp%Mod);
}
return 0;
}

  

HDU 4686的更多相关文章

  1. HDU 4686 Arc of Dream(矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4686 题意: 思路: #include <iostream>#include <cs ...

  2. 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 ...

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

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

  4. HDU 4686 Arc of Dream(快速幂矩阵)

    题目链接 再水一发,构造啊,初始化啊...wa很多次啊.. #include <cstring> #include <cstdio> #include <string&g ...

  5. HDU 4686 Arc of Dream (矩阵快速幂)

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

  6. HDU 4686 矩阵快速幂 Arc of Dream

    由式子的性质发现都是线性的,考虑构造矩阵,先有式子,a[i] = ax * a[i-1] + ay; b[i] = bx*b[i-1] +by; a[i]*b[i] = ax*bx*a[i-1]*b[ ...

  7. hdu 4686 Arc of Dream

    思路:构造矩阵 a[i]*b[i]=ax*bx*a[i-1]*b[i-1]+ax*by*a[i-1]+ay*bx*b[i-1]+ay*by 代码如下: #include<iostream> ...

  8. hdu 4686 Arc of Dream_矩阵快速幂

    题意:略 构造出矩阵就行了 |   AX   0    AXBY   AXBY       0  |                                                   ...

  9. hdu 4686 Arc of Dream(矩阵快速幂乘法)

    Problem Description An Arc of Dream is a curve defined by following function: where a0 = A0 ai = ai- ...

  10. HDU 4686 Arc of Dream(递归矩阵加速)

    标题效果:你就是给你一程了两个递推公式公式,第一个让你找到n结果项目. 注意需要占用该公式的复发和再构造矩阵. Arc of Dream Time Limit: 2000/2000 MS (Java/ ...

随机推荐

  1. [转]详细解读TrueSkill 排名系统

    概要 大多数竞技游戏都有一个评价玩家是否完成目标的度量指标,它是游戏的基础.对于包含两个或两个以上玩家(多玩家比赛)的比赛,常涉及到游戏玩家技能的排名方法.游戏鼓励玩家之间相互竞争,玩家不只要赢得单场 ...

  2. xml配置文件中的转义字符

    https://stackoverflow.com/questions/14607920/the-character-breaks-passwords-that-are-stored-in-the-w ...

  3. CodeForces 651C

    Description Watchmen are in a danger and Doctor Manhattan together with his friend Daniel Dreiberg s ...

  4. The Unique MST--hdoj

    The Unique MST Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) Tota ...

  5. Java IO-InputStream家族 -装饰者模式

    最近看到一篇文章,初步介绍java.io.InputStream,写的非常通俗易懂,在这里我完全粘贴下来. 来源于 https://mp.weixin.qq.com/s/hDJs6iG_YPww7ye ...

  6. Polyfill 与 Shim

    Polyfill 与 Shim polyfill 的概念是 Remy Sharp 在2010年提出的. polyfill,或 polyfiller ,表示为开发人员提供旧浏览器没有原生支持的较新功能的 ...

  7. MySQL视图、触发器、事务、存储过程、函数

    视图.触发器.事务.存储过程.函数   阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据 ...

  8. 将实体类/匿名对象转换为SqlParameter列表

    每次操作数据库参数化实在是太麻烦了,于是自己瞎琢磨,琢磨出下面扩展方式,能力有限,还有不足之处,请多多指教. /// <summary> /// <remarks> /// & ...

  9. jQuery Validate前端验证

    我们经常看到如下效果,那么它是如何实现的呢?看下面: 废话少说,直接上代码,大家直接Copy就能看到上面的效果啦. <html> <head> <title>验证内 ...

  10. Android入门知识

    1.Android开发环境 Android常用的开发环境包括两个:Eclipse + ADT 和Android Studio,Android Studio作为google官方推出的开发环境自然有得天独 ...