BZOJ 3231: [Sdoi2008]递归数列 (JZYZOJ 1353) 矩阵快速幂

http://www.lydsy.com/JudgeOnline/problem.php?id=3231
和斐波那契一个道理在最后加一个求和即可
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 //using namespace std;
 5 const int maxn=10010;
 6 const double eps=1e-8;
 7 long long modn;
 8 long long n,l,r;
 9 long long b[20]={};
10 struct mat{
11     long long e[20][20];
12     mat(){ memset(e,0,sizeof(e)); }
13 };
14 mat a;
15 mat Mul(mat x,mat y){
16     mat z;
17     for(int i=1;i<=n+1;i++){
18         for(int j=1;j<=n+1;j++){
19             for(int k=1;k<=n+1;k++){
20                 z.e[i][j]+=x.e[i][k]*y.e[k][j];
21                 z.e[i][j]%=modn;
22             }
23         }
24     }
25     return z;
26 }
27 mat Pow(mat x,long long k){
28     mat z;
29     for(int i=1;i<=n+1;i++){
30         z.e[i][i]=1;
31     }
32     while(k>0){
33         if(k&1){
34             z=Mul(z,x);
35         }
36         x=Mul(x,x);
37         k/=2;
38     }/*for(int i=1;i<=n;i++){
39         for(int j=1;j<=n;j++){
40             std::cout<<z.e[i][j]<<' ';
41         }
42         std::cout<<std::endl;
43     }*/
44     return z;
45 }
46 long long doit(long long x){
47     if(x<n){
48         return b[x+1];
49     }
50     mat z=Pow(a,x-n+1);
51     long long ans=0,s=0,d=0;
52     for(int i=1;i<=n+1;i++){
53         d+=z.e[n][i]*b[i];
54         s+=z.e[n+1][i]*b[i];
55         d%=modn;s%=modn;
56     }
57     ans=(s+d)%modn;
58     ans%=modn;
59     return ans;
60 }
61 int main(){
62     scanf("%lld",&n);
63     n+=1;
64     for(int i=2;i<=n;i++){
65         scanf("%lld",&b[i]);
66         b[n+1]+=b[i];
67     }
68     b[n+1]-=b[n];
69     for(int i=n;i>1;i--){
70         scanf("%lld",&a.e[n][i]);
71     }
72     long long l,r;
73     scanf("%lld%lld%lld",&l,&r,&modn);
74     for(int i=2;i<=n;i++){
75         b[i]%=modn;
76         a.e[i-1][i]=1;a.e[n][i]%=modn;
77     }
78     a.e[n+1][n+1]=1,a.e[n+1][n]=1;
79     /*for(int i=1;i<=n+1;i++){
80         for(int j=1;j<=n+1;j++){
81             std::cout<<a.e[i][j]<<' ';
82         }
83         std::cout<<std::endl;
84     }*/
85     long long ans=(doit(r)-doit(l-1)+modn)%modn;
86     printf("%lld\n",ans);
87     return 0;
88 }
View Code

 

转载于:https://www.cnblogs.com/137shoebills/p/7786497.html

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

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

相关文章

马斯克的火箭上天了,SpaceX开源项目也登上了热榜!

python知识手册SpaceX于美国东部时间5月30日下午3&#xff1a;22分将两位美国宇航员送往国际空间站&#xff0c;虽然这只是Demo任务&#xff0c;但SpaceX已经以其卓越工程优势、低廉的发射成本赢得了全球航天产业的信赖。同时也是除美俄中这些航天国家队以外&#xff0c;唯一独…

EasyMock学习笔记

目前在接触平台侧的开发&#xff0c;发现平台侧的东西和以前javacard开发很不一样&#xff0c;看来以后要学的东西还有很多很多。今天接触了下EasyMock。 Mock 方法是单元测试中常见的一种技术&#xff0c;它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象&#xf…

app启动广告页的实现,解决了广告图片要实时更新的问题

网上很多的实现方法很多都是显示第一次的缓存的图片&#xff0c;这样就造成后台更新广告图片App不能实时展示的问题。 我的具体实现思路是&#xff1a; 1.启动时先获取启动页的图片全屏展示。 2.设计一个等待时间&#xff0c;如果超过等待时间还没拿到图片就把获取的启动页去掉…

vue中点击插入html_Vue中插入HTML代码的方法

我们需要吧Hello World插入到My name is Pjee应该如何做&#xff1f;一、使用v-htmlv-html:更新元素的 innerHTMLconst text Hello World>My name is Pjee注意&#xff1a;你的站点上动态渲染的任意 HTML 可能会非常危险&#xff0c;因为它很容易导致 XSS 攻击。请只对可信…

进程共享变量#pragma data_seg用法

#pragma data_seg介绍用#pragma data_seg建立一个新的数据段并定义共享数据&#xff0c;其具体格式为&#xff1a;   #pragma data_seg &#xff08;"shareddata")   HWND sharedwndNULL;//共享数据   #pragma data_seg() ---------------------------------…

机器视觉Halcon教程(1.介绍)

前言本期教程主要教大家如何使用Halcon机器视觉&#xff0c;通过使用Halcon, 我们可以实现一些机器视觉的应用开发。例如: OCR识别、视觉定位、缺陷检测等内容。什么是halcon&#xff1f;简单来说, Halcon就是一款应用于机器视觉的软件&#xff0c;它提供了一套开发工具&#x…

网络时间的那些事及 ntpq 详解

2019独角兽企业重金招聘Python工程师标准>>> GMT (Greenwich Mean Time)格林威治时间 UTC (Coordinated Universal Time) 协调世界时 IAT (International Atomic Time),TAI 国际原子时 CST (Chinese Standard Time), 北京时间Gentoo&#xff08;也许其他发行版也是&…

【前端芝士树】Javascript的原型与原型链

【前端芝士树】Javascript的原型、原型链以及继承机制 前端的面试中经常会遇到这个问题&#xff0c;自己也是一直似懂非懂&#xff0c;趁这个机会整理一下0. 为什么会出现原型和原型链的概念 1994年&#xff0c;网景公司&#xff08;Netscape&#xff09;发布了Navigator浏览器…

神奇的幻方2015提高组d1t1

题目描述 幻方是一种很神奇的N*N矩阵&#xff1a;它由数字1,2,3,……,N*N构成&#xff0c;且每行、每列及两条对角线上的数字之和都相同。 当N为奇数时&#xff0c;我们可以通过以下方法构建一个幻方&#xff1a; 首先将1写在第一行的中间。 之后&#xff0c;按如下方式从小到大…

goldengate mysql_使用GoldenGate实现MySQL到Oracle的数据实时同步

step 1: 配置mysql修改配置文件my.ini#for goldengatelog-bin "C:/mysql/logbin/logbin.log"binlog-format ROWlog-bin-index "C:\mysql\logindex"binlog_cache_size32mmax_binlog_cache_size512mmax_binlog_size512m添加数据库用户ggs&#xff0c;具有…

C# 反射之Activator用法举例

概述程序运行时&#xff0c;通过反射可以得到其它程序集或者自己程序集代码的各种信息&#xff0c;包括类、函数、变量等来实例化它们&#xff0c;执行它们&#xff0c;操作它们&#xff0c;实际上就是获取程序在内存中的映像&#xff0c;然后基于这个映像进行各种操作。Activa…

MyBatis批量插入

转载于:https://blog.51cto.com/12701034/1929672

狐狸文│区块链发展的正路

&#xff08;图片出自网络&#xff0c;版权归原作者所有&#xff09;最近看了一本书&#xff1a;《美国增长的起落》。这本书是大部头&#xff0c;但看起来很过瘾。通过对这本书的阅读&#xff0c;我更新了自己对区块链发展的理解。这一年&#xff0c;“区块链”很热&#xff0…

mysql 一主一备_Mysql一个主一备

Mysql主从复制 -- 一主一备主从复制原理&#xff1a;Mysql的主从复制是mysql本身自带的一个功能&#xff0c;不需要额外的第三方软件可以实现&#xff0c;其复制功能并不是copy文件实现的&#xff0c;而是借助binlog日志文件里面的SQL命令实现的主从复制&#xff0c;可以理解为…

解决安装Weblogic domain卡住问题(Primeton BPS)

这两天一直有一个问题困扰我&#xff0c;在suse10weblogic(920,923,100,103)上安装bpm产品失败。有些版本是创建domain的时候卡在create security information上&#xff0c;有些版本卡在安装包start weblogic上。但是在winXPweblogic10.3bpm安装成功。 经过几番GOOGLE,终于找到…

cocos2d-js 热更新具体解释(一)

本文将会具体解说cocos2d-js下的热更新机制。这篇内容先给大家介绍一下两个manifest文件就当热身了。首先介绍project.manifest&#xff1a; 举个样例 {"packageUrl" : "http://192.168.1.108/games/dragon_gold","remoteManifestUrl" : "…

Qt之水平/垂直布局(QBoxLayout、QHBoxLayout、QVBoxLayout)

简述 QBoxLayout可以在水平方向或垂直方向上排列控件&#xff0c;由QHBoxLayout、QVBoxLayout所继承。 QHBoxLayout&#xff1a;水平布局&#xff0c;在水平方向上排列控件&#xff0c;即&#xff1a;左右排列。 QVBoxLayout&#xff1a;垂直布局&#xff0c;在垂直方向上排列控…

Optaplanner终于支持多线程并行运行 - Multithreaded incremental solving

Optaplanner 7.9.0.Final之前&#xff0c;启动引擎开始对一个Problem进行规划的时候&#xff0c;只能是单线程进行的。也就是说&#xff0c;当引擎对每一个possible solution进行分数计算的过程中&#xff0c;细化到每个步骤(Caculation)&#xff0c;都只能排队在同一个线程中依…

python棋盘格_干货必看 | Python的turtle库之经典棋盘格

国际棋盘格是一个由9横9纵的线组成的格子正方形&#xff0c;用Python的turtle库进行绘制的时候&#xff0c;先做9横9纵的线&#xff0c;再填上灰色小正方形&#xff0c;这就可以完成一个棋盘格了&#xff0c;下面是具体的操作步骤。(一)整体代码1、import turtleimport turtle2…

一位技术老人给.NET初学者的一些建议

.NET平台应用领域众多&#xff0c;随着这些年的不断更新迭代&#xff0c;日趋臻善&#xff0c;也受到越来越多的开发者青睐。自从2000 年6 月22 日 微软推出Microsoft.NET 战略 &#xff0c;至今已有22载&#xff0c;这些年新技术&#xff0c;新框架层出不穷&#xff0c;目不暇…