传送门











由于没有考虑n<=1的情况T了很久啊。



这题很有意思啊。

考试的时候根本不会,骗了30分走人。

实际上变一个形就可以了。

推导过程有点繁杂。

直接粘题解上的请谅解。



不得不说这个推导很妙。

然后就可以矩阵快速幂优化了。

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b,n,mod;
struct Matrix{
	ll a[3][3];
	Matrix(){a[0][0]=a[0][1]=a[0][2]=a[1][0]=a[1][1]=a[1][2]=a[2][0]=a[2][1]=a[2][2]=0;}
	inline void init(){a[0][0]=0,a[0][1]=1,a[0][2]=0,a[1][0]=1,a[1][1]=1,a[1][2]=1,a[2][0]=0,a[2][1]=2,a[2][2]=1;}
	inline Matrix operator*(Matrix b){
		Matrix c;
		c.a[0][0]=(a[0][0]*b.a[0][0]%mod+a[0][1]*b.a[1][0]%mod+a[0][2]*b.a[2][0]%mod)%mod;
		c.a[0][1]=(a[0][0]*b.a[0][1]%mod+a[0][1]*b.a[1][1]%mod+a[0][2]*b.a[2][1]%mod)%mod;
		c.a[0][2]=(a[0][0]*b.a[0][2]%mod+a[0][1]*b.a[1][2]%mod+a[0][2]*b.a[2][2]%mod)%mod;
		c.a[1][0]=(a[1][0]*b.a[0][0]%mod+a[1][1]*b.a[1][0]%mod+a[1][2]*b.a[2][0]%mod)%mod;
		c.a[1][1]=(a[1][0]*b.a[0][1]%mod+a[1][1]*b.a[1][1]%mod+a[1][2]*b.a[2][1]%mod)%mod;
		c.a[1][2]=(a[1][0]*b.a[0][2]%mod+a[1][1]*b.a[1][2]%mod+a[1][2]*b.a[2][2]%mod)%mod;
		c.a[2][0]=(a[2][0]*b.a[0][0]%mod+a[2][1]*b.a[1][0]%mod+a[2][2]*b.a[2][0]%mod)%mod;
		c.a[2][1]=(a[2][0]*b.a[0][1]%mod+a[2][1]*b.a[1][1]%mod+a[2][2]*b.a[2][1]%mod)%mod;
		c.a[2][2]=(a[2][0]*b.a[0][2]%mod+a[2][1]*b.a[1][2]%mod+a[2][2]*b.a[2][2]%mod)%mod;
		return c;
	}
};
inline ll ksm(ll a,ll b,ll c,int p){
	Matrix ret,x;
	ret.init(),x.init();
	while(p>=1){
		if(p&1)ret=ret*x;
		x=x*x,p>>=1;
	}
	return (a*ret.a[0][1]%mod+b*ret.a[1][1]%mod+c*ret.a[2][1]%mod)%mod;
}
int main(){
	cin>>a>>b>>mod>>n;
	if(n<=1)puts("1");
	else cout<<ksm(a,b,sqrt((ll)(3+a*b)),n-2);
	return 0;
}

2018.09.26 bzoj5221: [Lydsy2017省队十连测]偏题(数学推导+矩阵快速幂)的更多相关文章

  1. 2018.09.26 bzoj5218: [Lydsy2017省队十连测]友好城市(回滚莫队)

    传送门 比较简单的一道回滚莫队吧. 每次询问用bitset优化kosaraju统计答案. 就是有点难调. 然后向dzyo学长学习了回滚莫队的一种简洁的实现方式,就是直接建立一个sqrt(m)∗sqrt ...

  2. bzoj 5216 [Lydsy2017省队十连测]公路建设 线段树维护 最小生成树

    [Lydsy2017省队十连测]公路建设 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 93  Solved: 53[Submit][Status][ ...

  3. bzoj 5216: [Lydsy2017省队十连测]公路建设

    5216: [Lydsy2017省队十连测]公路建设 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 66  Solved: 37[Submit][St ...

  4. Lydsy2017省队十连测

    5215: [Lydsy2017省队十连测]商店购物 可能FFT学傻了,第一反应是前面300*300背包,后面FFT... 实际上前面背包,后面组合数即可.只是这是一道卡常题,需要注意常数.. //A ...

  5. ACM-ICPC 2018 焦作赛区网络预赛- L:Poor God Water(BM模板/矩阵快速幂)

    God Water likes to eat meat, fish and chocolate very much, but unfortunately, the doctor tells him t ...

  6. bzoj 5218: [Lydsy2017省队十连测]友好城市

    题意: 这题显然直接tarjan是做不了的. 这里安利另一个求SCC的算法Kosaraju,学习的话可以见这篇博客 于是结合莫队,我们有了个暴力. 发现主要瓶颈是dfs过程中找最小的未经过的点,我们用 ...

  7. 【BZOJ 5222】[Lydsy2017省队十连测]怪题

    题目大意: 传送门 给一个长度为$n(n<=200)$的数列$h$,再给$m$个可以无限使用的操作,第$i$个操作为给长度为花费$c_i$的价值给长度为$l_i$的数列子序列+1或-1,求将数列 ...

  8. BZOJ5217: [Lydsy2017省队十连测]航海舰队 FFT

    被FFT的空间卡了半天 后来发现根本不用开那么大... 首先可以把包含舰艇的那个小矩形找出来 将它一行一行连接成一个串T 其中舰艇位置为1其他位置为0 将大矩形也连成串S 其中礁石为1其他为0 两个串 ...

  9. BZOJ5217:[Lydsy2017省队十连测]航海舰队——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5217 Byteasar 组建了一支舰队!他们现在正在海洋上航行着.海洋可以抽象成一张n×m 的网格 ...

随机推荐

  1. Java使用poi生成Excel,生成两种表格下拉框

    想要使用POI操作以xsl结尾的Excel,首先要下载poi相关的jar包,用到的jar有: poi-3.9.jar poi-ooxml-3.9.jar poi-ooxml-schemas-3.9.j ...

  2. egret-初步接触

    class HelloTime extends egret.DisplayObjectContainer { public constructor() { super(); this.addEvent ...

  3. inotify用法简介及结合rsync实现主机间的文件实时同步

    一.inotify简介 inotify是Linux内核2.6.13 (June 18, 2005)版本新增的一个子系统(API),它提供了一种监控文件系统(基于inode的)事件的机制,可以监控文件系 ...

  4. 注册COM

    可以用代码在程序中实现COM的注册. 举例如下: (假设需要注册的文件为test.ocx)uses OLEctl,....varOCXHand: THandle;RegFunc: TDllRegist ...

  5. 贝叶斯vs频率派:武功到底哪家强?| 说人话的统计学·协和八(转)

    回我们初次见识了统计学理论中的“独孤九剑”——贝叶斯统计学(戳这里回顾),它的起源便是大名鼎鼎的贝叶斯定理. 整个贝叶斯统计学的精髓可以用贝叶斯定理这一条式子来概括: 我们做数据分析,绝大多数情况下希 ...

  6. linux sleep用法

    应用程序:#include <syswait.h>usleep(n) //n微秒Sleep(n)//n毫秒sleep(n)//n秒驱动程序:#include <linux/delay ...

  7. Mysql Innodb 性能参数设置 https://www.rathishkumar.in/2017/01/how-to-allocate-innodb-buffer-pool-size-in-mysql.html

    参考原文: https://www.rathishkumar.in/2017/01/how-to-allocate-innodb-buffer-pool-size-in-mysql.html 查看系统 ...

  8. azkaban编译安装配置文档

    azkaban编译安装配置文档 参考官方文档: http://azkaban.github.io/azkaban/docs/latest/ azkaban的配置文件说明:http://azkaban. ...

  9. hdoj1160 DP--LIS

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 思路: 又是一道LIS的应用题,先预处理,按照w从小到大排列,那么原问题就转变成求该排列的LIS ...

  10. 第八章 高级搜索树 (xa3)红黑树:插入