hdu----(4686)Arc of Dream(矩阵快速幂)
Arc of Dream
Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 2010 Accepted Submission(s): 643

where
a0 = A0
ai = ai-1*AX+AY
b0 = B0
bi = bi-1*BX+BY
What is the value of AoD(N) modulo 1,000,000,007?
Each test case contains 7 nonnegative integers as follows:
N
A0 AX AY
B0 BX BY
N is no more than 1018, and all the other integers are no more than 2×109.
1 2 3
4 5 6
2
1 2 3
4 5 6
3
1 2 3
4 5 6
134
1902

- #define LOCAL
- #include<cstdio>
- #include<cstring>
- #define LL __int64
- using namespace std;
- const LL mod=;
- struct node
- {
- LL mat[][];
- void init(int v){
- for(int i=;i<;i++){
- for(int j=;j<;j++)
- if(i==j)
- mat[i][j]=v;
- else
- mat[i][j]=;
- }
- }
- };
- LL AO,BO,AX,AY,BX,BY,n;
- node ans,cc;
- void init(node &a)
- {
- a.mat[][]=a.mat[][]=(AX*BX)%mod;
- a.mat[][]=a.mat[][]=(AX*BY)%mod;
- a.mat[][]=a.mat[][]=(BX*AY)%mod;
- a.mat[][]=a.mat[][]=(AY*BY)%mod;
- a.mat[][]=a.mat[][]=a.mat[][]=a.mat[][]=;
- a.mat[][]=a.mat[][]=a.mat[][]=;
- a.mat[][]=a.mat[][]=a.mat[][]=a.mat[][]=;
- a.mat[][]=a.mat[][]=;
- a.mat[][]=AX;
- a.mat[][]=AY;
- a.mat[][]=BX;
- a.mat[][]=BY;
- }
- void Matrix(node &a, node &b)
- {
- node c;
- c.init();
- for(int i=;i<;i++)
- {
- for(int j=;j<;j++)
- {
- for(int k=;k<;k++)
- {
- c.mat[i][j]=(c.mat[i][j]+a.mat[i][k]*b.mat[k][j])%mod;
- }
- }
- }
- for(int i=;i<;i++)
- {
- for(int j=;j<;j++)
- {
- a.mat[i][j]=c.mat[i][j];
- }
- }
- }
- void pow(node &a,LL w )
- {
- while(w>)
- {
- if(w&) Matrix(ans,a);
- w>>=1L;
- if(w==)break;
- Matrix(a,a);
- }
- }
- int main()
- {
- LL sab;
- #ifdef LOCAL
- freopen("test.in","r",stdin);
- #endif
- while(scanf("%I64d",&n)!=EOF)
- {
- scanf("%I64d%I64d%I64d",&AO,&AX,&AY);
- scanf("%I64d%I64d%I64d",&BO,&BX,&BY);
- if(n==){
- printf("0\n");
- continue;
- }
- AO%=mod;
- BO%=mod;
- AX%=mod;
- AY%=mod;
- BX%=mod;
- BY%=mod;
- ans.init();
- init(cc);
- pow(cc,n-);
- sab=(AO*BO)%mod;
- LL res=(ans.mat[][]*sab)%mod+(ans.mat[][]*AO)%mod+(ans.mat[][]*BO)%mod+ans.mat[][]%mod+(AO*BO)%mod;
- printf("%I64d\n",res%mod);
- }
- return ;
- }
hdu----(4686)Arc of Dream(矩阵快速幂)的更多相关文章
- 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 ...
- HDU 4686 Arc of Dream 矩阵快速幂,线性同余 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=4686 当看到n为小于64位整数的数字时,就应该有个感觉,acm范畴内这应该是道矩阵快速幂 Ai,Bi的递推式题目 ...
- hdu 4686 Arc of Dream_矩阵快速幂
题意:略 构造出矩阵就行了 | AX 0 AXBY AXBY 0 | ...
- HDU4686 Arc of Dream 矩阵快速幂
Arc of Dream Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Tota ...
- 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 ...
- 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 ...
- HDOJ 4686 Arc of Dream 矩阵高速幂
矩阵高速幂: 依据关系够建矩阵 , 高速幂解决. Arc of Dream Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65535/ ...
- HDU 4686 Arc of Dream(矩阵)
Arc of Dream [题目链接]Arc of Dream [题目类型]矩阵 &题解: 这题你做的复杂与否很大取决于你建的矩阵是什么样的,膜一发kuangbin大神的矩阵: 还有几个坑点: ...
- HDU4686 Arc of Dream —— 矩阵快速幂
题目链接:https://vjudge.net/problem/HDU-4686 Arc of Dream Time Limit: 2000/2000 MS (Java/Others) Memo ...
随机推荐
- bootstrp水平表单格式
1:form里添加类 "form-horizontal" 2:把标签和表单控件(input 等)放在一个带有类名 "form-group"的div里 3:标签可 ...
- git -C
https://git-scm.com/docs/git -C <path> Run as if git was started in <path> instead of th ...
- 头文件为什么要加#ifndef #define #endif
#ifndef 在头文件中的作用 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时 ,就会出现大量“重定义”的错误.在头文件中实用#ifndef #de ...
- windows下安装zabbix_agents_2.2.0
下载与解压 下载zabbix_agents_2.2.0 http://www.zabbix.com/downloads/2.2.0/zabbix_agents_2.2.0.win.zip 解压到C盘下 ...
- vs无法打开项目的解决方案
错误提示: “未找到与约束 ContractName Microsoft.Internal.VisualStudio.PlatformUI.ISolutionAttachedCollectionSer ...
- JS——时间日期控件
原文:http://blog.sina.com.cn/s/blog_621768f30100qmfz.html 今天找到一个还不错的日历控件 下载地址:http://www.my97.net/dp/d ...
- windows下的Git简单入手
现在再搞golang,用go get github.com/xxx 命令使需要git.提交新项目到github.com也要git,老东西了,呵呵现在也要学习一下. 下载windows版的git. ·准 ...
- Nginx简介及配置实用
Nginx简介 Nginx是一个高性能的HTTP和反向代理服务器: 支持的操作系统众多,windows.linux. MacOS X: 可实现负载均衡: Rewrite功能强大: 电商架构大部分都采用 ...
- yii2-datepicker/datetimepicker插件使用
datepicker: https://github.com/2amigos/yii2-date-picker-widget 通过composer安装: composer require 2amigo ...
- openstack 网卡
桥接基本原理: 物理网卡eth0 br0(桥) tap0,tap1(tap是给vm使用的接口)