BZOJ 4128 Matrix ——BSGS】的更多相关文章

题目 给定矩阵A, B和模数p,求最小的正整数x满足 A^x = B(mod p). 分析 与整数的离散对数类似,只不过普通乘法换乘了矩阵乘法. 由于矩阵的求逆麻烦,使用 $A^{km-t} = B(mod \ p)$ 形式的BSGS. 然后就是判断矩阵是否相等, 一种方法是对矩阵进行Hash, 这里为了防止两个不同矩阵的Hash值冲突,使用了两个底数进行Hash. #include<bits/stdc++.h> using namespace std; typedef long long l…
题意:链接 方法: BSGS+矩阵求逆 解析: 这题就是把Ax=B(mod C)的A和B换成了矩阵. 然而别的地方并没有修改. 所以就涉及到矩阵的逆元这个问题. 矩阵的逆元怎么求呢? 先在原矩阵后接一个单位矩阵,最好还是设右对角线 先把原矩阵进行高斯消元 且消成严格右对角线的单位矩阵的形式. 然后在消元的同一时候把单位矩阵的部分一并计算.最后单位矩阵就变成了它的逆矩阵. 这道题保证矩阵有逆 然而没有逆矩阵的情况就是高斯消元搞不成. 所以推断应该也好推断. 另外,刚刚实測本题数据.关于将矩阵的ha…
矩阵的BSGS. 只需要哈希一下存起来就可以了. 也并不需要求逆. #include <map> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define F(i,j,k) for (ll i=j;i<=k;++i) #define D(i,…
BZOJ 4128: Matrix 标签(空格分隔): OI BZOJ 大步小步 矩阵 费马小定理 Time Limit: 10 Sec Memory Limit: 128 MB Description 给定矩阵A,B和模数p,求最小的x满足 A^x = B (mod p) Input 第一行两个整数n和p,表示矩阵的阶和模数,接下来一个n * n的矩阵A.接下来一个n * n的矩阵B Output 输出一个正整数,表示最小的可能的x,数据保证在p内有解 Sample Input 2 7 1 1…
类比整数的做法就行了 1A爽哉 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN = 75; const int sed = 137; int n, p; struct Matrix { int v[MAXN][MAXN]; Matrix(){ memset(v, 0, sizeof v); } inline void read() { for(int i = 1; i <=…
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4128 大水题一道 使用大步小步算法,把数字的运算换成矩阵的运算就好了 矩阵求逆?这么基础的线代算法我也不想多说,还是自行百度吧 需要注意的是矩阵没有交换律,所以在计算$B\cdot A^{-m}$的时候不要把顺序搞混 代码: #include <cstring> #include <cstdio> #include <algorithm> #include <…
题解 学习一下矩阵求逆 就是我们考虑这个矩阵 \(AA^{-1} = I\) 我们相当于让\(A\)乘上一个矩阵,变成\(I\) 我们可以利用初等行变换(只能应用初等行变换,或只应用初等列变换) 分三种 1.矩阵的两行互换 2.矩阵的一行加上k倍的另一行 3.矩阵的一行都乘上某个数 其实行变换的本质也可以写成一个矩阵! 我们把\(A\)消成1的过程中,对\(I\)进行同样的操作,就可以得到\(A^{-1}\)了 然后用map代替哈希记录一下就行 似乎这题不用求逆也行... 代码 #include…
/************************************************************** Problem: 4128 User: idy002 Language: C++ Result: Accepted Time:4932 ms Memory:4152 kb ****************************************************************/ #include <iostream> #include <…
Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 813  Solved: 442[Submit][Status][Discuss] Description 给定矩阵A,B和模数p,求最小的x满足 A^x = B (mod p) Input 第一行两个整数n和p,表示矩阵的阶和模数,接下来一个n * n的矩阵A.接下来一个n * n的矩阵B Output 输出一个正整数,表示最小的可能的x,数据保证在p内有解 Sample Input 2 7 1 1…
[BZOJ4128]Matrix Description 给定矩阵A,B和模数p,求最小的x满足 A^x = B (mod p) Input 第一行两个整数n和p,表示矩阵的阶和模数,接下来一个n * n的矩阵A.接下来一个n * n的矩阵B Output 输出一个正整数,表示最小的可能的x,数据保证在p内有解 Sample Input 2 7 1 1 1 0 5 3 3 2 Sample Output 4 HINT 对于100%的数据,n <= 70,p <=19997,p为质数,0<…