十进制快速幂(牛客多校第五场)-- generator 1
思路:
十进制快速幂。
- #include <stdio.h>//sprintf
- #include <cstdlib>////malloc exit strcat itoa system("cls")
- #include <iostream>//pair
- #include <fstream>
- #include <bitset>
- //#include <map> https://ac.nowcoder.com/acm/contest/885/B
- #include <vector>
- #include <stack>
- #include <set>
- #include <string.h>//strstr
- #include <string>
- #include <time.h>//srand(((unsigned)time(NULL))); Seed n=rand()%10 - 0~9;
- #include <cmath>
- #include <queue>//priority_queue<long long, vector<long long>, greater<long long> > q;
- #include <vector>
- //#include <math.h>
- //#include <windows.h> https://www.nitacm.com/problem_show.php?pid=222
- #include <algorithm>//sort + unique : sz=unique(b+1,b+n+1)-(b+1);+nth_element(first, nth, last, compare)
- using namespace std;
- #define pr printf
- #define sc scanf
- #define fo(a,b,c) for((a)=(b);(a)<=(c);(a)++)//register long long i
- #define fr(a,b,c) for((a)=(b);(a)>=(c);(a)--)
- #define mem(a,b) memset((a),(b),sizeof((a)))
- const double e=2.718281828;
- const double PI=acos(-1.0);
- const double ESP=1e-;
- const long long inf=;
- const long long N=;
- long long mod;
- const long long MAXN=;
- long long x0,x1,a,b,MOD;
- struct MAT
- {
- long long mat[MAXN][MAXN];
- MAT()
- {
- mat[][]=mat[][]=;//对角矩阵 E;
- mat[][]=mat[][]=;
- }
- MAT operator*(const MAT &a)const
- {
- MAT b;
- long long i,j,k;
- mem(b.mat,);
- fo(i,,MAXN-)
- {
- fo(j,,MAXN-)
- {
- fo(k,,MAXN-)
- {
- b.mat[i][j]=(b.mat[i][j]+mat[i][k]*a.mat[k][j]);
- b.mat[i][j]%=mod;
- }
- }
- }
- return b;
- }
- }transfer;
- MAT Mqpow(MAT x,long long n)
- {
- struct MAT temp;
- while(n)
- {
- if(n&)
- temp=temp*x;
- x=x*x;
- n>>=;
- }
- return temp;
- }
- char n[N];
- struct MAT mark[],start;
- int main()
- {
- sc("%lld%lld%lld%lld%s%lld",&x0,&x1,&a,&b,n,&MOD);
- // mem(transfer.mat,0);
- mod=MOD;
- transfer.mat[][]=a,transfer.mat[][]=b;
- transfer.mat[][]=,transfer.mat[][]=;
- start.mat[][]=x1,start.mat[][]=x0;
- mark[]=transfer;
- for(int i=;i<=;++i)
- mark[i]=transfer*mark[i-];
- int l=strlen(n);
- struct MAT ans;
- for(int i=;i<=l-;++i)
- {
- ans=Mqpow(ans,);
- ans=ans*mark[n[i]-''];
- }
- start=ans*start;
- pr("%lld\n",start.mat[][]%MOD);
- return ;
- }
十进制快速幂(牛客多校第五场)-- generator 1的更多相关文章
- 2019牛客多校第五场 generator 1——广义斐波那契循环节&&矩阵快速幂
理论部分 二次剩余 在数论中,整数 $X$ 对整数 $p$ 的二次剩余是指 $X^2$ 除以 $p$ 的余数. 当存在某个 $X$,使得式子 $X^2 \equiv d(mod \ p)$ 成立时,称 ...
- generator 1(2019年牛客多校第五场B题+十进制矩阵快速幂)
目录 题目链接 思路 代码 题目链接 传送门 思路 十进制矩阵快速幂. 代码 #include <set> #include <map> #include <deque& ...
- 2019牛客多校第五场B generator 十进制快速幂
generator 1 题意 给出\(x_0,x_1,a,b\)已知递推式\(x_i=a*x_{i-1}+b*x_{i-2}\),出个n和mod,求\(x_n\) (n特别大) 分析 比赛的时候失了智 ...
- 牛客多校第五场B generator1(十进制矩阵快速幂)题解
题意: 已知 \(X_i = a * X_{i - 1} + b * X_{i - 2}\),现给定\(X_0,X_1,a,b\),询问\(X^n \mod p\),其中\(n <= 10^{1 ...
- 2019牛客多校第五场 B - generator 1 矩阵快速幂+十倍增+二进制倍增优化
B - generator 1 题意 给你\(x_{0}.x_{1}.a.b.b.mod\),根据\(x_{i} = a*x_{i-1} + b*x_{i-2}\)求出\(x_{n}\) 思路 一般看 ...
- 2019牛客多校第五场B-generator 1(矩阵快速幂)
generator 1 题目传送门 解题思路 矩阵快速幂.只是平时的矩阵快速幂是二进制的,这题要用十进制的快速幂. 代码如下 #include <bits/stdc++.h> #defin ...
- 牛客多校第五场 B generator 1 矩阵快速幂
题意: 给定$x_0,x_1,a,b,n,mod, x_i=a*x_{i-1}+b*x_{i-2}$ ,求$x_n % mod$ n最大有1e6位 题解: 矩阵快速幂. 巨大的n并不是障碍,写一个十进 ...
- 2019 牛客多校第五场 B generator 1
题目链接:https://ac.nowcoder.com/acm/contest/885/B 题目大意 略. 分析 十进制矩阵快速幂. 代码如下 #include <bits/stdc++.h& ...
- 牛客多校第五场 F take
链接:https://www.nowcoder.com/acm/contest/143/F来源:牛客网 题目描述 Kanade has n boxes , the i-th box has p[i] ...
随机推荐
- jQuery文档操作之插入操作
append() 语法 父元素.append(子元素) 解释:追加某元素,在父元素中添加新的子元素.子元素可以为:string/element(js对象)/jQuery元素 代码如下: var oli ...
- JQuery动画之淡入淡出动画
1. 淡入动画 1.1 不带参数的淡入动画 格式: $(selector).fadeIn(); 示例代码: <!doctype html> <html lang="en&q ...
- 省市县镇村五级地址智能提取(标准地址源来自国家统计局官网)SpringBoot+Elasticsearch 5.6
项目目的 根据传入的地址,智能提取所属的省市县镇村5级地址.例如:用户输入“江苏南通嗨安李堡镇陈庄村8组88号”,我们需要提取到江苏省 南通市 海安县(即便用户输入了错字,“海”写成了“嗨”) 李 ...
- [CSP-S模拟测试]:密码(数位DP+库默尔定理)
题目描述 为了揭穿$SERN$的阴谋,$Itaru$黑进了$SERN$的网络系统.然而,想要完全控制$SERN$,还需要知道管理员密码.$Itaru$从截获的信息中发现,$SERN$的管理员密码是两个 ...
- (十四)C语言之一维数组、二维数组
- beta week 2/2 Scrum立会报告+燃尽图 05
此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9957 一.小组情况 组长:贺敬文组员:彭思雨 王志文 位军营 徐丽君队名: ...
- Vue+elementUI+springboot+mybatis demo教程(二)
安装配置node.js安装vue并搭建前台项目前台项目引入elementUI前台项目引入axios本篇主要记录前台项目搭建之前的环境准备,首先要安装node.js(node官网),进行相关配置等. 安 ...
- zipkin-client:brave核心代码思路整理
Zipkin是分布式跟踪系统. 简单地理解,可以将Zipkin分为两部分. 一部分为Zipkin Server,其负责接受存储应用程序处理耗时数据,以及UI展示. 另一部分为Zipkin Client ...
- LC 163. Missing Ranges 【lock, hard】
Given a sorted integer array nums, where the range of elements are in the inclusive range [lower, up ...
- ubuntu快速联网
1:打开ubuntu 2:设置 特殊:red hat设置视频:http://www.jikexueyuan.com/course/1349_3.html?ss=1