题面太丑了,就不复制了。

题意:F1=A; F2=B; Fn=D*Fn-1+C*Fn-2+P/i;求Fn。

思路:根据P/i的值划分区间,每个区间矩阵求。

带常数的矩阵:

#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int Mod=1e9+;
struct mat
{
int mp[][];
mat(){memset(mp,,sizeof(mp)); }
mat friend operator *(mat a,mat b)
{
mat res;
rep(k,,) rep(i,,) rep(j,,)
res.mp[i][j]=(res.mp[i][j]+((ll)a.mp[i][k]*b.mp[k][j]%Mod))%Mod;
return res;
}
mat friend operator ^(mat a,int x)
{
mat res;
rep(i,,) res.mp[i][i]=;
while(x){
if(x&) res=res*a; a=a*a; x>>=;
}return res;
}
}; int main()
{
int T,N,A,B,C,D,P,fcy;
scanf("%d",&T);
while(T--){
scanf("%d%d%d%d%d%d",&A,&B,&C,&D,&P,&N);
if(N==) {printf("%d",A); continue;}
if(N==) {printf("%d",B); continue;}
for(int i=,r;i<=N;i=r+){
int tmp=P/i;
if(tmp==) r=N;
else r=min(P/(P/i),N);
mat ans,base;
ans.mp[][]=B;ans.mp[][]=A; ans.mp[][]=;
base.mp[][]=D; base.mp[][]=C; base.mp[][]=tmp;
base.mp[][]=base.mp[][]=;
ans=(base^(r-i+))*ans;
if(r==N) fcy=ans.mp[][];
else B=ans.mp[][],A=ans.mp[][];
}
printf("%d\n",fcy);
}
return ;
}

HDU - 6395:Sequence (分块+矩阵)的更多相关文章

  1. HDU 6395 Sequence 【矩阵快速幂 && 暴力】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6395 Sequence Time Limit: 4000/2000 MS (Java/Others)   ...

  2. HDU - 6395 Sequence (分块+快速矩阵幂)

    给定递推式: 求Fn. 分析:给出的公式可以用快速矩阵幂运算得到,但 P/n 整除对于不同的i,值是不同的. 可以根据P将3-n分成若干块,每块中P整除n的值是相同的.分块的时候要注意判断. 将每块的 ...

  3. HDU - 6395 Sequence (整除分块+矩阵快速幂)

    定义数列: $\left\{\begin{eqnarray*} F_1 &=& A \\ F_2 &=& B \\ F_n &=& C\cdot{}F_ ...

  4. HDU 6395 Sequence(分段矩阵快速幂)题解

    题意: 已知\(A,B,C,D,P,n\)以及 \[\left\{ \begin{aligned} & F_1 = A \\ & F_2 = B\\ & F_n = C*F_{ ...

  5. [hdu-6395]Sequence 分块+矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6395 因为题目数据范围太大,又存在递推关系,用矩阵快速幂来加快递推. 每一项递推时  加的下取整的数随 ...

  6. HDU 5667 Sequence(矩阵快速幂)

    Problem Description Holion August will eat every thing he has found. Now there are many foods,but he ...

  7. HDU 5667 Sequence【矩阵快速幂+费马小定理】

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5667 题意: Lcomyn 是个很厉害的选手,除了喜欢写17kb+的代码题,偶尔还会写数学题.他找到 ...

  8. HDU 6395 Sequence 杜教板子题

    题目意思非常明确,就是叫你求第n项,据我们学校一个大佬说他推出了矩阵,但是我是菜鸡,那么肯定是用简单的方法水过啦!我们先p^(1/2)的复杂度处理出i=[i,p]范围内的所有种类的(int)(p/i) ...

  9. hdu 6395 Sequence (简单矩乘)

    P/n大多数情况是不变的, 取值只有$O(\sqrt{P})$种, 可以用$p/(p/i)$跳过重复的值, 复杂度$O(logn\sqrt{P})$ 要注意 P跟模数P有冲突 要特判p/i==0和p/ ...

  10. Sequence( 分块+矩阵快速幂 )

    题目链接 #include<bits/stdc++.h> using namespace std; #define e exp(1) #define pi acos(-1) #define ...

随机推荐

  1. HDU - 3488 Tour (KM最优匹配)

    题意:对一个带权有向图,将所有点纳入一个或多个环中,且每个点只出现一次,求其所有环的路径之和最小值. 分析:每个点都只出现一次,那么换个思路想,每个点入度出度都为1.将一个点拆成两个点,一个作为入度点 ...

  2. cart_购物车小程序

    #author:leon product_list= [ ('iphone',5800), ('mac pro',9800), ('bike',800), ('watch',6000), ('coff ...

  3. docker安装部署PHP nginx

    sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=htt ...

  4. 服务端Job调度程序

    GIT地址:https://github.com/youbl/PlanServer

  5. 20145109 《Java程序设计》第四周学习总结

    20145109 <Java程序设计>第四周学习总结 教材学习内容总结 Chapter 6 Inheritance & Polymorphism What is Inheritan ...

  6. codeforces 703B

    题意:有n座城市,其中k座是省会城市,每个城市有对应的点权,城市1-2-3-...-n-1有一条路相连,省会城市与其他所有的城市相连,且每两个城市间最多有一条路,每条路的边权为路连接的两座城市的点权乘 ...

  7. mysql升级的一些踩坑点

    升级的方法一般有两类: 1.利用mysqldump来直接导出sql文件,导入到新库中,这种方法最省事也最保险 缺点:大库的mysqldump费时费力. 2.直接替换掉 mysql 的安装目录和 my. ...

  8. ie if判断

    <p> </p> <!--[if lt IE 7]> <html lang="en" ng-app="myApp" c ...

  9. [转]HTTP协议通信原理

    本文转自<HTTP协议通信原理> 了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客 ...

  10. IOS-Alcatraz(插件管理工具)

    一.简单说明 Alcatraz 是一款 Xcode的插件管理工具,可以用来管理XCode的 插件.模版以及颜色配置的工具. 二.如何安装 1.github地址:https://github.com/a ...