[Luogu] P1939 【模板】矩阵加速(数列)

题目描述

a[1]=a[2]=a[3]=1

a[x]=a[x-3]+a[x-1] (x>3)

求a数列的第n项对1000000007(10^9+7)取余的值。

题目解析

顺序:x.x,y.y,x.y

Code

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int MOD = 1000000007;struct Matrix {long long m[10][10];int sx,sy;
} str,pro;long long n;void init() {str.m[1][1] = str.m[1][2] = str.m[1][3] = 1;str.sx = 1;str.sy = 3;pro.m[1][1] = pro.m[1][2] = pro.m[2][2] = pro.m[2][3] = pro.m[3][1] = 0;pro.m[1][3] = pro.m[2][1] = pro.m[3][2] = pro.m[3][3] = 1;pro.sx = pro.sy = 3;return;
}inline Matrix mul(Matrix a,Matrix b) {Matrix res;memset(res.m,0,sizeof(res.m));for(int i = 1;i <= a.sx;i++) {for(int j = 1;j <= b.sy;j++) {for(int k = 1;k <= b.sx;k++) {res.m[i][j] += a.m[i][k] * b.m[k][j] % MOD;res.m[i][j] %= MOD;}}}res.sx = a.sx, res.sy = b.sy;return res;
}inline Matrix quick_pow(Matrix x,long long y) {Matrix res;res.sx = str.sx;res.sy = str.sy;for(int i = 1;i <= 5;i++) {for(int j = 1;j <= 5;j++) {res.m[i][j] = (i==j);}}while(y) {if(y & 1) res = mul(res,x);x = mul(x,x);y >>= 1;}return res;
}int main() {int T;scanf("%d",&T);while(T--) {scanf("%lld",&n);init();if(n <= 3) {puts("1");continue;}Matrix ans = mul(str,quick_pow(pro,n));printf("%lld\n",ans.m[1][3]);}return 0;
}

 

转载于:https://www.cnblogs.com/floatiy/p/9772496.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 移动端页面不满一屏时如何实现满屏背景?

[css] 移动端页面不满一屏时如何实现满屏背景&#xff1f; body {min-height: 100vh; }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

JavaScript获取完整当前域名

window.location.protocol"//"window.location.host

二叉树的下一个结点

题目描述 给定一个二叉树和其中的一个结点&#xff0c;请找出中序遍历顺序的下一个结点并且返回。注意&#xff0c;树中的结点不仅包含左右子结点&#xff0c;同时包含指向父结点的指针。树见书P275分三种情况&#xff1a;1. 该节点有右子树&#xff0c;下一个结点就是它右子树…

[css] css中class和id选择器有什么区别?

[css] css中class和id选择器有什么区别&#xff1f; id 在部分浏览器的 js 中会直接生成同名变量&#xff1b; id 的唯一性&#xff0c;获取该 id 的 dom 时&#xff0c;会取同名 id 的前者&#xff1b; id 层叠权重非常高&#xff0c;1000 个 class 也覆盖不了 id 的样式&…

jmeter中文版新手入门教程

1.先增加线程组2.线程组界面展示3.增加HTTP请求4.HHTP请求页面展示5.增加结果树6.结果树界面展示

命名法

驼峰命名法&#xff1a; 方法或者变量名的第一个单词的首字母小写&#xff0c;后面的每个单词首字母大写。如 schoolStudent 、showCenter()等。 帕斯卡命名法&#xff1a; 每一个单词的首字母都大写。如类名 School等。 在java中&#xff0c;定义类的属性和方法用驼峰命名法&…

[css] css中兼容ie浏览器的前缀是什么?

[css] css中兼容ie浏览器的前缀是什么 -webkit- 谷歌 -moz- 火狐 -o- opera -ms- ie个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

发一个自己写的抓包软件,支持插件化脚本分析

市场上的抓包工具已经足够多&#xff0c;轻量级的&#xff0c;重量级的都有&#xff0c;典型的wireshark&#xff0c;smartsniff等&#xff0c; 各有优缺点&#xff0c;PowerSniff是为程序员准备的一款抓包工具&#xff0c;目标是使协议解析插件编写更简单。文件格式完全兼容wi…

dropload.js无限刷新解决方案

1、检查Ajax是否设置了同步&#xff0c;将async设置为false&#xff0c;默认为true&#xff08;异步&#xff09; 2.检查是否进入了ajax的error方法&#xff0c;如果进入了error方法&#xff0c;按照官方给的demo&#xff0c;肯定会无限循环,所以在error方法加一句debugger进行…

[css] 请问触发hasLayout的后果是什么?

[css] 请问触发hasLayout的后果是什么&#xff1f; 继承父元素的布局。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

Java的HttpURLConnection通过POST请求中文乱码

创建工具HttpRequestUtil类&#xff1a; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.…

PHP.ini 中的session 相关设置

php.ini设置参考项&#xff1a;//处理session存取的模式session.save_handler files//session档案存放路径session.save_path /tmp//session使用cookie的功能,启动: 1session.use_cookies 1//session名字session.name PHPSESSID//自动启动;0:关&#xff1b;1&#xff1a;开…

Myeclipse2015把web项目添加至tomcat中,添加列表中却没有想要添加的项目

Myeclipse2015把web项目添加至tomcat中&#xff0c;添加列表中却没有想要添加的项目?? 解决方法&#xff1a; 项目-右键-Properties-Myeclipse-Project Factes - Dynamic Web Module 前面打√ 然后点击 Apply ,在点击OK就可以添加了&#xff01;

工作342:消除平时环境的console

let transformRemoveConsolePlugin [] /*if (process.env.NODE_ENV production) {transformRemoveConsolePlugin [transform-remove-console] }*/module.exports {presets: ["vue/cli-plugin-babel/preset"],plugins: [...transformRemoveConsolePlugin] };这样就…

maven项目发布到tomcat里lib包没有发布的问题

背景&#xff1a;使用maven搭建一套开发环境 出现的问题&#xff1a; 编译之后在tomcat中web工程下面的lib包没有将jar包打入。截图如下&#xff1a; 解决方法&#xff1a;右键项目&#xff0c;选择properties&#xff0c;然后选在使用eclipse做web项目时&#xff0c;为了方便…

poj-2528线段树练习

title: poj-2528线段树练习 date: 2018-10-13 13:45:09 tags: acm刷题 categories:ACM-线段树概述 这道题坑了我好久啊啊啊啊&#xff0c;&#xff0c;&#xff0c;&#xff0c; 到现在也只是理解了kaungbin的代码&#xff0c;&#xff0c;&#xff0c;知道每一步做什么&#x…

[css] 当使用opacity时会使得元素的子元素也透明,此时不想要子元素也跟着透明怎么办?

[css] 当使用opacity时会使得元素的子元素也透明&#xff0c;此时不想要子元素也跟着透明怎么办&#xff1f; 当父元素使用opacity时&#xff0c;子元素也会继承该透明度&#xff0c;即使重新设置透明度也不行。楼上的两种方法要么是放弃使用opacity&#xff0c;要么是放弃使用…

[css] 在css中为什么说不建议使用@import?

[css] 在css中为什么说不建议使用import&#xff1f; import 属于 CSS&#xff0c;所以导入语句应写在 CSS 中&#xff0c;要注意的是导入语句应写在样式表的开头&#xff0c;否则无法正确导入外部文件&#xff1b;import 是 CSS2.1 才出现的概念&#xff0c;所以如果浏览器版…

javaWeb项目部署至tomcat下classes文件夹没有内容

解决方法&#xff1a;项目右键------Java Build Path----------Source 将Default output folder改成/src/main/webapp/WEB-INF/classes就可以了&#xff01;