BZOJ-3231 [SDOI2008]递归数列
转成矩阵连乘后,矩阵快速幂加速解决。
一开始没把需要longlong的变量补全。。而且没初始化2333
- #include <cstdlib>
- #include <cstdio>
- #include <cstring>
- #include <cctype>
- #include <cmath>
- #include <algorithm>
- #include <iostream>
- #define rep(i, l, r) for(int i=l; i<=r; i++)
- #define clr(x, c) memset(x, c, sizeof(x))
- #define maxn 20
- #define ll long long
- #define l(x) x*2
- #define r(x) x*2+1
- using namespace std;
- inline ll read()
- {
- ll x=0, f=1; char ch=getchar();
- while (!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();}
- while (isdigit(ch)) x=x*10+ch-'0', ch=getchar();
- return x*f;
- }
- int n;
- ll q;
- ll m[maxn][maxn], m2[maxn][maxn], b[maxn], c[maxn], a[maxn], a2[maxn];
- ll Query(ll k)
- {
- if (k<=n) {ll now=0; rep(i, 1, k) now+=b[i]; return now;} else k-=n;
- clr(m, 0);
- rep(i, 1, n) m[n][n+1-i]=m[n+1][n+1-i]=c[i];
- rep(i, 1, n-1) m[i][i+1]=1; m[n+1][n+1]=1;
- rep(i, 1, n+1) a[i]=b[i];
- while (k)
- {
- if (k&1)
- {
- clr(a2, 0);
- rep(i, 1, n+1) rep(j, 1, n+1) a2[i]=(a2[i]+a[j]*m[i][j])%q;
- rep(i, 1, n+1) a[i]=a2[i];
- }
- clr(m2, 0);
- rep(i, 1, n+1) rep(j, 1, n+1) rep(o, 1, n+1) m2[i][j]=(m2[i][j]+m[i][o]*m[o][j])%q;
- rep(i, 1, n+1) rep(j, 1, n+1) m[i][j]=m2[i][j];
- k=k>>1;
- }
- return a[n+1];
- }
- int main()
- {
- n=read();
- rep(i, 1, n) b[i]=read(), b[n+1]+=b[i];
- rep(i, 1, n) c[i]=read();
- ll x=read(), y=read(); q=read();
- rep(i, 1, n) b[i]%=q, c[i]%=q;
- printf("%lld", (Query(y)-Query(x-1)+2*q)%q);
- return 0;
- }
BZOJ-3231 [SDOI2008]递归数列的更多相关文章
- BZOJ 3231: [Sdoi2008]递归数列( 矩阵快速幂 )
矩阵乘法裸题..差分一下然后用矩阵乘法+快速幂就可以了. ----------------------------------------------------------------------- ...
- BZOJ 3231: [Sdoi2008]递归数列 (JZYZOJ 1353) 矩阵快速幂
http://www.lydsy.com/JudgeOnline/problem.php?id=3231 和斐波那契一个道理在最后加一个求和即可 #include<cstdio> #i ...
- bzoj 3231 [Sdoi2008]递归数列——矩阵乘法
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3231 矩阵乘法裸题. 1018是10^18.别忘了开long long. #include& ...
- bzoj 3231: [Sdoi2008]递归数列【矩阵乘法】
今天真是莫名石乐志 一眼矩阵乘法,但是这个矩阵的建立还是挺有意思的,就是把sum再开一列,建成大概这样 然后记!得!开!long!long!! #include<iostream> #in ...
- BZOJ:3231: [Sdoi2008]递归数列
题解: 矩阵乘法,在矩阵中构造当前前缀和: 注意:for(int/long long ;;); #include<iostream> #include<cstdio> #inc ...
- BZOJ3231: [Sdoi2008]递归数列
BZOJ3231: [Sdoi2008]递归数列 Description 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + ...
- BZOJ_3231_[Sdoi2008]递归数列_矩阵乘法
BZOJ_3231_[Sdoi2008]递归数列_矩阵乘法 Description 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1a ...
- 开始玩矩阵了!先来一道入门题![SDOI2008]递归数列
[SDOI2008]递归数列 题目描述 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + c ...
- P2461 [SDOI2008]递归数列
题目描述 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k 其中bj 和 cj ...
- [bzoj3231][SDOI2008]递归数列——矩阵乘法
题目大意: 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k 其中bj和 cj ...
随机推荐
- 【转】iOS 上常用的两个功能:点击屏幕和return退出隐藏键盘和解决虚拟键盘挡住UITextField的方法
iOS上面对键盘的处理很不人性化,所以这些功能都需要自己来实现, 首先是点击return和屏幕隐藏键盘 这个首先引用双子座的博客 http://my.oschina.net/plumsoft/blog ...
- 问题 M: 克隆玩具
题目描述 你只有一个A类型玩具,现在有个有两种功能的机器:1. 加工一个A类型的玩具能够再得到一个A类型的玩具和一个B类型的玩具.2. 加工一个B类型的玩具,能得到两个B类型的玩具. 问经过多次加工之 ...
- 求最大公约数和最小公倍数_python
"""写两个函数,分别求两个整数的最大公约数和最小公倍数,调用这两个函数,并输出结果.两个整数由键盘输入.""" ''' 设两个整数u和v, ...
- Jmeter后置处理器
一.什么是关联? 将请求1的输出 作为 请求2 的输入,则称之为关联 例如:“用户登录”请求中服务器返回了token,“查询用户信息”请求需要把token返回给服务器进行验证 二.通过JSON Pat ...
- 51+Nokia5110
#include<reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned ...
- getchar输入多行字符,原格式输出(包含换行符)
#include<stdio.h> int main() { FILE fp; ]; ; char ch; while((ch=getchar())!=EOF){ str[k++]=ch; ...
- 基于django的个人博客网站建立(二)
基于django的个人博客网站建立(二) 前言 网站效果可点击这里访问 今天主要完成后台管理员登录的状态以及关于文章在后台的处理 具体内容 首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没 ...
- python 2.7版本解决TypeError: 'encoding' is an invalid keyword argument for this function
今天在用yaml处理数据时,由于yaml.load可接收一个byte字符串,unicode字符串,打开的二进制文件或文本文件对象,但字节字符串和文件必须是utf-8,utf-16-be或utf-16- ...
- linux的发展过程
1. 操作系统 人与计算机硬件直接的中介 2. Linux系统组成 3. Linux的发展过程 蛋-人-人-人 unix于诞生贝尔实验室 人-谭教授 谭宁邦 minix mini unix. 主要用于 ...
- 使用 CAST
使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, st ...