news 2026/6/23 2:17:57

《P1939 矩阵加速(数列)》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《P1939 矩阵加速(数列)》

题目描述

已知一个数列 a,它满足:

ax​={1ax−1​+ax−3​​x∈{1,2,3}x≥4​

求 a 数列的第 n 项对 109+7 取余的值。

输入格式

第一行一个整数 T,表示询问个数。

以下 T 行,每行一个正整数 n。

输出格式

每行输出一个非负整数表示答案。

输入输出样例

输入 #1复制

3 6 8 10

输出 #1复制

4 9 19

说明/提示

  • 对于 30% 的数据 n≤100;
  • 对于 60% 的数据 n≤2×107;
  • 对于 100% 的数据 1≤T≤100,1≤n≤2×109。

代码实现:

#include <cstdio> #include <iostream> using namespace std; #define INF 1000000007 long long n, q[105]; struct mat{ long long m[3][3]; int sz; }; mat mul(mat a, mat b) { mat res; for(int i=0;i<3;i++) for(int j=0;j<3;j++) res.m[i][j]=0; for(int i=0;i<3;i++) for(int j=0;j<a.sz;j++) for(int k=0;k<3;k++) res.m[i][j]=((res.m[i][j]%INF)+(a.m[k][j]%INF)*(b.m[i][k]%INF))%INF; res.sz=a.sz; return res; } void qpow(long long x) { mat t, ans; ans.sz=1; t.sz=3; ans.m[0][0]=ans.m[1][0]=ans.m[2][0]=1; for(int i=0;i<3;i++) for(int j=0;j<3;j++) t.m[i][j]=0; t.m[0][0]=t.m[0][2]=t.m[1][0]=t.m[2][1]=1; while(x) { if(x&1) ans=mul(ans, t); t=mul(t, t); x>>=1; } cout<<ans.m[0][0]%INF<<endl; } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>q[i]; for(int i=1;i<=n;i++) { if(q[i]<=3) {cout<<1<<endl;continue;} qpow(q[i]-3); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 12:27:57

编程语言扩展的实现机制

编程语言扩展的实现机制 编程语言的扩展机制允许在核心语言基础上增加新功能或优化性能。下面我将深入阐述几种主要的扩展实现方式&#xff0c;并结合具体实例说明。 一、扩展实现的主要方式 1. C/C扩展&#xff08;原生扩展&#xff09; 通过语言的原生接口将底层代码与高…

作者头像 李华
网站建设 2026/6/20 9:06:53

Vue3+Cesium教程(38)--动态雾浓度、颜色

本学习系列以Cesium Vue3 Typescriptelementplus作为主要技术栈&#xff0c;后续会循序渐进&#xff0c;持续探索Cesium的高级功能&#xff0c;敬请期待。欢迎关注威信公众号“webgis学习”。详情请查阅原文 Vue3Cesium教程(38)--动态雾浓度、颜色https://mp.weixin.qq.com/s…

作者头像 李华
网站建设 2026/6/13 13:48:09

算法题:字符串转换成整数。

字符串转换成整数:从原理到实战的深度解析 关键词 字符串转换、整数转换、类型转换、算法设计、边界处理、异常处理、Python实现 摘要 本文将深入探讨"字符串转换成整数"这一经典算法问题,从问题背景、核心概念、算法原理到实际应用进行全方位解析。我们将详细…

作者头像 李华
网站建设 2026/6/13 11:33:15

勾股定理简单学习

前言 若a和b是直角三角形的两条直角边&#xff0c;c是斜边&#xff0c;那么 a2b2c2a^{2}b^{2}c^{2}a2b2c2 勾股定理的图解法证明 勾股定理指出&#xff0c;在直角三角形中&#xff0c;斜边的平方等于两直角边的平方和&#xff0c;即 ( a2b2c2a^2 b^2 c^2a2b2c2)。以下是几种经…

作者头像 李华
网站建设 2026/6/12 20:31:15

从零开始安装并配置开源AI编程神器OpenCode

对于个人开发者而言&#xff0c;选择 OpenCode 国产开源编程模型 的组合&#xff0c;本质上是用开源工具 国产高性价比模型复刻了甚至超越了硅谷顶尖付费产品的AI编程体验。 让我们开始安装并使用开源AI编程神器OpenCode吧&#xff01; 一&#xff0c;第一步&#xff1a;环境…

作者头像 李华
网站建设 2026/6/22 10:23:17

充电即服务:智慧园区打造“人-车-桩”智能互联新体验

1、概述 园区停车场有电动汽车和电动自行车&#xff0c;均需要提供充电桩。充电桩管理系统通过物联网技术对接入系统的充电桩站点和各个充电桩进行不间断地数据采集和监控&#xff0c;解决园区充电桩使用、监控问题。电动自行车充电可采用投币、扫码充电方式&#xff0c;电动汽…

作者头像 李华