bzoj4161: Shlw loves matrixI
Description
Input
Output
一行一个整数 hn mod 1000000007
常系数线性齐次递推可转为多项式幂取模
- #include<cstdio>
- #define F(i,l,r) for(int i=l;i<r;++i)
- #define Fe(i,l,r) for(int i=l;i<=r;++i)
- typedef long long i64;
- const int P=;
- const int MX=7e18/(1ll<<),MN=-MX;
- inline i64 fix(i64 x){return (int(x>>)>MX||int(x>>)<MN)?x%P:x;}
- int n,k,a[],f[],x[],y[];
- i64 _t[],ans=;
- void pol_mul(int*a,int*b){
- Fe(i,,k*-)_t[i]=;
- F(i,,k)F(j,,k)_t[i+j]=fix(_t[i+j]+i64(a[i])*b[j]);
- for(int i=k*-;i>=k;--i){
- i64 c=_t[i]%P;
- Fe(j,,k)_t[i-j]=fix(_t[i-j]+c*f[j]);
- }
- F(i,,k)a[i]=_t[i]%P;
- }
- int main(){
- scanf("%d%d",&n,&k);
- Fe(i,,k)scanf("%d",f+i);
- Fe(i,,k)scanf("%d",a+i);
- x[]=;
- if(k>)y[]=;
- else y[]=f[];
- for(;n;n>>=,pol_mul(y,y))if(n&)pol_mul(x,y);
- for(int i=;i<k;++i)ans=fix(ans+x[i]*i64(a[i+]));
- printf("%lld\n",(ans%P+P)%P);
- return ;
- }
bzoj4161: Shlw loves matrixI的更多相关文章
- 【BZOJ4161】Shlw loves matrixI (常系数齐次线性递推)
[BZOJ4161]Shlw loves matrixI (常系数齐次线性递推) 题面 BZOJ 题解 \(k\)很小,可以直接暴力多项式乘法和取模. 然后就是常系数齐次线性递推那套理论了,戳这里 # ...
- 【BZOJ4161】Shlw loves matrixI
题目描述 给定数列 {hn}前k项,其后每一项满足 hn = a1h(n-1) + a2h(n-2) + ... + ak*h(n-k) 其中 a1,a2...ak 为给定数列.请计算 h(n),并将 ...
- [bzoj4161]Shlw loves matrix I
来自FallDream的博客,未经允许,请勿转载,谢谢. 给定数列 {hn}前k项,其后每一项满足 hn = a1*h(n-1) + a2*h(n-2) + ... + ak*h(n-k) 其中 a1 ...
- bzoj 4161: Shlw loves matrixI
Description 给定数列 {hn}前k项,其后每一项满足 hn = a1h(n-1) + a2h(n-2) + ... + ak*h(n-k) 其中 a1,a2...ak 为给定数列.请计算 ...
- BZOJ 4161 Shlw loves matrixI ——特征多项式
矩阵乘法递推的新姿势. 叉姐论文里有讲到 利用特征多项式进行递推,然后可以做到k^2logn #include <cstdio> #include <cstring> #inc ...
- bzoj 4161 Shlw loves matrixI【常系数线性齐次递推】
并不会递推,不过板子挺好背的,只要是类似的递推都能用,但是注意c数组不能使负数 如果除了递推还有常数项的话,就用f[i]-f[i-1]的方式消掉常数项(然后多一个f[i-1]的项) #include& ...
- bzoj 4161 Shlw loves matrixI——常系数线性齐次递推
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4161 还是不能理解矩阵…… 关于不用矩阵理解的方法:https://blog.csdn.ne ...
- [BZOJ]4162: shlw loves matrix II
Time Limit: 30 Sec Memory Limit: 128 MB Description 给定矩阵 M,请计算 M^n,并将其中每一个元素对 1000000007 取模输出. Inpu ...
- [bzoj4162]shlw loves matrix II
来自FallDream的博客,未经允许,请勿转载,谢谢 给定矩阵k*k的矩阵M,请计算 M^n,并将其中每一个元素对 1000000007 取模输出. k<=50 n<=2^10000 考 ...
随机推荐
- Cetus
转自:https://github.com/Lede-Inc/cetus Cetus 简介 Cetus是由C语言开发的关系型数据库MySQL的中间件,主要提供了一个全面的数据库访问代理功能.Cetus ...
- Solr增删改查索引
一.添加索引,提交文档 1.如图,我的xml文档有predicate.object字段,这些在Solr配置文档里没有,所以xml文档提交不了 2.在F:\solr-4.10.0\example\sol ...
- mysql 到postgresql
1 import pandas as pd 2 import psycopg2 3 from io import StringIO 4 import pymysql 5 conf={"mys ...
- DevExpress v18.1新版亮点——ASP.NET Bootstrap篇(二)
用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress ASP.NET Bootstrap v18.1 的新功能,快 ...
- TCP/IP网络知识点总结
学完了计算机网络是时候整理一篇总结了,温故知新.注意:这篇博客很长长长(2.5万字+50图). TCP/IP网络知识点总结 一.总述 1.定义:计算机网络是一些互相连接的.自治的计算机的集合.因特网是 ...
- linux C 内存分配(~道的光芒四射~)
总结一下C语言中基本的内存分配,加深对内存管理的印象,一步一步走山路~~~~~~~~ 1. 程序和进程 问题:程序和进程各是什么? 程序 只是一段可以执行的代码文件,通俗讲在 linux 上就是一个 ...
- macOS 使用brew安装mysql,客户端连接不上
macos 使用brew安装mysql8.0后,使用mysql官方的workbench连接不上,出现√ mysql8.0 Authentication plugin 'caching_sha2_pas ...
- 使用自己的域名解析cnblogs博客(CSDN也可以)
本文主要介绍怎样使用自己购买的域名指向cnblogs博客 通常来说技术人员都会创建个自己的技术博客,总结下工作中的问题,经验等等,不过某些博客的访问链接的确是不太容易记忆或者输入,对我们分享造成一定的 ...
- caffe安装编译问题-ImportError: No module named skimage.io
问题描述 >>> import caffe Traceback (most recent call last): File , in <module> File , in ...
- [LeetCode&Python] Problem 559. Maximum Depth of N-ary Tree
Given a n-ary tree, find its maximum depth. The maximum depth is the number of nodes along the longe ...