https://www.spoj.com/problems/DETER3/en/
题意即为输出矩阵的行列式求模的答案
分类讨论模为不为质数的情况即可,若为质数,可以使用费马小定理;否则利用公式a/b%m=(a%(b*m))/b
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <string>
#include <cmath>
using namespace std;
typedef long long ll;
const int maxn = 200 + 3;
ll a[maxn][maxn], p;
int isprime;
ll qpow(ll a, ll b) {
ll ret = 1;
while(b) {
if(b & 1) ret = ret * a % p;
b >>= 1;
a = a * a % p;
}
return ret;
}
ll Dot_is_prime(int n) {
ll ret = 1;
int flg = 0;
for(int i = 1; i <= n; ++i) {
for(int j = i + 1; j <= n; ++j) {
while(a[j][i]) {
ll t = a[i][i] * qpow(a[j][i]