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 (矩阵快速幂+分块)的更多相关文章

  1. HDU-6395 多校7 Sequence(除法分块+矩阵快速幂)

    Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

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

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

  3. 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里是不变的,可以数论分块,再在每一段里 ...

  4. 杭电多校第七场 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 ...

  5. hdu 6395Sequence【矩阵快速幂】【分块】

    Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total ...

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

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

  7. HDU6395-Sequence 矩阵快速幂+除法分块 矩阵快速幂模板

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门  原题目描述在最下面. Solution ...

  8. HDU6395(分段+矩阵快速幂)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=6395 给你一个式子,给出你A,B,C,D,P,n,让你求出第n项的式子Fn.(其中ABCDPn均在1e9的 ...

  9. BZOJ2326 [HNOI2011]数学作业(分块矩阵快速幂)

    题意: 定义函数Concatenate (1 ..N)是将所有正整数 1, 2, …, N 顺序连接起来得到的数,如concatenate(1..5)是12345,求concatenate(1...n ...

随机推荐

  1. 编译jmeter5.0源码

    jmeter5.0使用过程中,遇到request或者response乱码的情况,想要一次性解决这个问题,需要编译ApacheJMeter_http.jar这个包(lib\ext文件下)里的Reques ...

  2. self study 权限 permission

    demo 测试成功, import 'package:permission/permission.dart'; Future requirePermission()async { await Perm ...

  3. xtrabackup 2.4.3 BUG

    用XtraBackup对备份集进行apply log 的时候,卡在 xtrabackup 版本:2.4.3 InnoDB: Waited for 1535930 seconds for 128 pen ...

  4. 3、SpringBoot 集成Storm wordcount

    WordCountBolt public class WordCountBolt extends BaseBasicBolt { private Map<String,Integer> c ...

  5. Linux 运维之路

     第一章:Linux必备知识  1.Linux 系统介绍 2.Linux 简单文本处理 3.Linux 组管理.权限 4.Linux vim文档操作 5.Linux 高级文件管理 6.Linux 文件 ...

  6. Gradle构建多模块项目

    通常我在使用Maven构建项目的时候是将应用项目划分为多个更小的模块. Gradle 项目也拥有多于一个组件,我们也将其称之为多项目构建(multi-project build). 我们首先创建一个多 ...

  7. mysql 删除重复数据

    1在日常使用mysql中 前端页面点击次数过多 mysql就会容易产生冗余数据,那这些数据该怎么删除呢 说下思路 查询重复字段id 查询重复字段最小id 删除重复字段ID 保留最小ID 查询重复记录这 ...

  8. 解决 “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符 类型库符号与系统符号冲突问题

    今天在VS工程当中引入一个组件,编译的时候出现警告, “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏:使用“rename”限定符.虽然只是一个警告,但看着实在不爽,更重要的是,警告 ...

  9. 使用Travis CI自动部署博客到github pages和coding pages

    每次换系统或换电脑之后重新部署博客总是很苦恼?想像jekyll那样,一次性部署完成后,以后本地不用安装环境直接 git push 就能生成博客?那推荐你应该使用使用 Travis CI了. 这篇文章我 ...

  10. 基于Ocelot的gRpcHttp网关

    什么是gRpcHttp网关 通俗的讲就是将gRpc提供的服务以rest api的形式提供出去,不需要再单独的写一个webapi去做这件事. gRpcHttp网关好处 减少不必要代码,减少中间层提高通讯 ...