HDU 4686 Arc of Dream
来源:互联网 发布:淘宝返现哪个最好用 编辑:程序博客网 时间:2024/06/05 23:53
题意:
给出N
A0 AX AY
B0 BX BY ,
求mod 1,000,000,007
a 0 = A0
a i = a i-1*AX+AY
b 0 = B0
b i = b i-1*BX+BY
思路:
#include<bits/stdc++.h>#define N 1000000007#define M 6using namespace std;struct node{long long a[M][M];};node cheng(node a,node b){node c;memset(c.a,0,sizeof(c.a));for(int i=0;i<M;i++)for(int j=0;j<M;j++)for(int k=0;k<M;k++)c.a[i][j]=(c.a[i][j]+(a.a[i][k]*b.a[k][j])%N)%N;return c;}void p(node a){for(int i=0;i<M;i++)for(int j=0;j<M;j++)printf("%lld%c",a.a[i][j]," \n"[j==M-1]);printf("\n");}int main(){node a,b;long long n; long long A0, AX, AY, B0, BX, BY;while(~scanf("%lld",&n)){scanf("%lld%lld%lld%lld%lld%lld",&A0, &AX, &AY, &B0, &BX, &BY);A0%=N;AX%=N;AY%=N;B0%=N;BX%=N;BY%=N;memset(a.a,0,sizeof(a.a));memset(b.a,0,sizeof(b.a));b.a[0][1]=A0*B0%N;b.a[0][2]=A0;b.a[0][3]=B0;b.a[0][4]=AY;b.a[0][5]=BY;a.a[0][0]=a.a[1][0]=a.a[4][2]=a.a[5][3]=a.a[4][4]=a.a[5][5]=1LL;a.a[1][1]=AX*BX%N;a.a[2][1]=AX*BY%N;a.a[3][1]=AY*BX%N;a.a[4][1]=BY;a.a[2][2]=AX;a.a[3][3]=BX;p(a);p(b);while(n){if(n&1) b=cheng(b,a); n>>=1; a=cheng(a,a);}printf("%lld\n",(b.a[0][0]%N+N)%N);}return 0;}
阅读全文
0 0
- HDU 4686 Arc of Dream
- HDU 4686 Arc of Dream
- hdu 4686 Arc of Dream
- hdu 4686 Arc of Dream
- HDU 4686 Arc of Dream
- hdu-4686 Arc of Dream
- HDU 4686 Arc of Dream
- HDU 4686 Arc of Dream
- HDU 4686 Arc of Dream
- HDU 4686 Arc of Dream
- HDU 4686 Arc of Dream
- HDU Arc of Dream
- hdu-4686-Arc of Dream-矩阵
- hdu 4686Arc of Dream 杭电多校第九场1001 矩阵
- hdu 4686 Arc of Dream 多校第九场
- 多校 4686 Arc of Dream hdu 矩阵解
- hdu 4686 Arc of Dream(构造矩阵快速幂)
- hdu 4686 Arc of Dream 矩阵快速幂
- 【Java】Java中线程的使用
- Android实现验证码倒计时简单效果
- Lang-String类详解
- Java基础之常见集合的比较
- net.sf.ehcache.ObjectExistsException: Cache shiro-activeSessionCache already exists
- HDU 4686 Arc of Dream
- 2017HDU多校7场
- Web访问原理-从输入URL到页面加载完成的过程中都发生了什么事
- ubuntu下lvm扩容
- sql STUFF用法
- 软件工程课程之难
- TP-Link无线路由器当交换机怎么设置
- 【Java】Java中的IO流
- 记一次使用poi导入处理Excel中日期格式