hdu6395 (矩阵快速幂+分块)
Online Judge Online Exercise Online Teaching Online Contests Exercise Author
F.A.Q
Hand In Hand
Online Acmers
Forum | Discuss
Statistical Charts
Problem Archive
Realtime Judge Status
Authors Ranklist C/C++/Java Exams
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
Virtual Contests
DIY | Web-DIY beta
Recent Contests
Author >
Mail Mail ()
Control Panel Control Panel
Sign Out Sign Out 2018百度之星复赛晋级名单出炉(增加20%晋级名额)~
Sequence Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others)
Total Submission(s): Accepted Submission(s): Problem Description
Let us define a sequence as below
Your job is simple, for each task, you should output Fn module +. Input
The first line has only one integer T, indicates the number of tasks. Then, for the next T lines, each line consists of integers, A , B, C, D, P, n. ≤T≤≤A,B,C,D≤≤P,n≤ Sample Input Sample Output Source
Multi-University Training Contest Recommend
chendu | We have carefully selected several similar problems for you:
分块矩阵快速幂
构造 0 1 0 fn-2 fn-1
c d 1 * fn-1 = fn
0 0 1 p/i p/i
//这题也是利用这个性质,比如p=16,
//那么:i按照p/(p/i)+1来递增,
//得到:1,2,3,4,5,6,9,17.
//滑动的区间中每个数对于p来说除数一样,比如【9,17)这部分对于16来说除数都是1, #include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
#define ll long long
const int mod =1e9+;
struct node{
ll a[][];
};
struct pp{
ll a[][];
};
ll num[];
ll num2[];
node juzheng(node p,node q)
{
node ans;
memset (ans.a,,sizeof ans.a);
for(int i=; i<=; i++)
for(int j=; j<=; j++)
for(int h=; h<=; h++)
ans.a[i][j] =(ans.a[i][j]+p.a[i][h]*q.a[h][j])%mod; return ans;
}
pp juzheng2(node z,pp q)
{
pp ans;
memset (ans.a,,sizeof ans.a);
ans.a[][]=(z.a[][]*q.a[][]+z.a[][]*q.a[][]+z.a[][]*q.a[][])%mod;
ans.a[][] =(z.a[][]*q.a[][]+z.a[][]*q.a[][]+z.a[][]*q.a[][])%mod;
ans.a[][] =(z.a[][]*q.a[][]+z.a[][]*q.a[][]+z.a[][]*q.a[][])%mod;
return ans;
} node juzheng_qsm(node q,int m)
{
node ans;
memset(ans.a,,sizeof(ans.a));
ans.a[][]=;ans.a[][]=;ans.a[][]=;
while(m)
{
if(m%==)
{
ans=juzheng(ans,q);
}
m=m/;
q=juzheng(q,q);
}
return ans;
} int main()
{
int n;
scanf("%d",&n);
while(n--)
{
ll A,B,C,D,p,n;
memset(num2,,sizeof num2);
scanf("%lld%lld%lld%lld%lld%lld",&A,&B,&C,&D,&p,&n);
if(n<=) {printf("%lld\n",n==?:B);continue;}
ll cnt=;
ll temp=-; pp S;
S.a[][]=A;
S.a[][]=B;
S.a[][]=;
node san;
memset(san.a,,sizeof san.a);
san.a[][]=;
san.a[][]=C; san.a[][]=D; san.a[][]= san.a[][]=;
ll L=min(p,n);
ll i;
for( i=;i<=L;i=min(L,p/(p/i))+)
{
S.a[][]=p/i;
S=juzheng2(juzheng_qsm(san,min(n,p/(p/i))+-i),S);
} if(--i<n)
{
S.a[][]=;
S=juzheng2(juzheng_qsm(san,n-i),S);
} cout<<S.a[][]<<endl; }
return ;
}
hdu6395 (矩阵快速幂+分块)的更多相关文章
- HDU-6395 多校7 Sequence(除法分块+矩阵快速幂)
Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- [hdu-6395]Sequence 分块+矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6395 因为题目数据范围太大,又存在递推关系,用矩阵快速幂来加快递推. 每一项递推时 加的下取整的数随 ...
- HDU6395 Sequence(矩阵快速幂+数论分块)
题意: F(1)=A,F(2)=B,F(n)=C*F(n-2)+D*F(n-1)+P/n 给定ABCDPn,求F(n) mod 1e9+7 思路: P/n在一段n里是不变的,可以数论分块,再在每一段里 ...
- 杭电多校第七场 1010 Sequence(除法分块+矩阵快速幂)
Sequence Problem Description Let us define a sequence as below f1=A f2=B fn=C*fn-2+D*fn-1+[p/n] Your ...
- hdu 6395Sequence【矩阵快速幂】【分块】
Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total ...
- HDU - 6395 Sequence (整除分块+矩阵快速幂)
定义数列: $\left\{\begin{eqnarray*} F_1 &=& A \\ F_2 &=& B \\ F_n &=& C\cdot{}F_ ...
- HDU6395-Sequence 矩阵快速幂+除法分块 矩阵快速幂模板
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门 原题目描述在最下面. Solution ...
- HDU6395(分段+矩阵快速幂)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6395 给你一个式子,给出你A,B,C,D,P,n,让你求出第n项的式子Fn.(其中ABCDPn均在1e9的 ...
- BZOJ2326 [HNOI2011]数学作业(分块矩阵快速幂)
题意: 定义函数Concatenate (1 ..N)是将所有正整数 1, 2, …, N 顺序连接起来得到的数,如concatenate(1..5)是12345,求concatenate(1...n ...
随机推荐
- 浅谈USB驱动架构 转载
去年,老师让我分析基于HD3系统芯片的WindowsCE USB驱动的可行性.USB驱动非常庞大,多个软件层次相互交错,以及各种协议,USB系统对于一般人很难理解,我对其也只是理解一个大概,下面,我对 ...
- Comparing Spring AOP and AspectJ
AOP 概念 在我们开始之前 , 让我们做一个快速.高级别审查的核心术语和概念 : 方面 — —标准 / 特征代码被分散在多个场所中的应用 , 通常不同于实际的业务逻辑 (例如 , 交易管理) .各方 ...
- axios中post传参方式
最近做vue项目,做图片上传的功能,使用get给后台发送数据,后台能收到,使用post给后台发送图片信息的时候,vue axios post请求发送图片base64编码给后台报错HTTP 错误 414 ...
- 类成员(static)和final修饰符
在Java类里只能包含成员变量.方法.构造器.初始化块.内部类(包括接口.枚举)5种成员,类成员是用static来修饰的,其属于整个类. 当使用实例来访问类成员时,实际上依然是委托给该类来访问类成员, ...
- Vue 组件&组件之间的通信 父子组件的通信
在Vue的组件内也可以定义组件,这种关系成为父子组件的关系: 如果在一个Vue实例中定义了component-a,然后在component-a中定义了component-b,那他们的关系就是: Vue ...
- SpringMVC,SpringBoot利用ajax上传文件到后台
1.传递单文件 首先html文件中有个<input type=”file” name=”file” id=”file”/>元素. 前台js写法: var formData=new Form ...
- pip安装scrapy失败:twisted安装失败 error: Microsoft Visual C++ 14.0 is required.. 解决方法
在使用pip install scrapy命令安装scrapy框架时,Twisted出现安装错误.如下: building 'twisted.test.raiser' extension error: ...
- 为input标签绑定事件的几种方式
为input标签绑定事件的几种方式 1.JavaScript原生态的方式,直接复制下面的代码就会有相应的效果 <!DOCTYPE html><html><head> ...
- 不能最为IF判断条件的属性
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- CSDN去广告插件
因为避免不了与代码打交道,所以经常要上网搜代码,一般搜索到的资源都指向了CSDN,然而,好好的一篇博文,上面有很多广告,看着很不舒服,冲vip是不可能的,穷的的要死,怎么办呢?写个插件把! 去广告原理 ...
