題意:
f(n)為斐波那契數列,s(n)為其字首和,給你n,m,求s(n)%m的值作為矩陣邊長,構造矩陣行和列的值都不相等
思路:
= =、強行把兩道題湊成一道題;
求斐波那契字首和–矩陣快速冪;(具體構造矩陣看**)
構造方法:
四個角放好,然後水平,豎直放...
具體看**(懶得寫…)
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
const
double pi = acos(-1.0);
const
double eps = 1e-6;
const
int inf=0x3f3f3f3f;
//const int mod = 1e9;
const
int n = 210;
struct mat;
int n,mod;
mat mul(mat a,mat b)
mat quick_mi(mat a,int nn)
return b;
}int ma[n][n];
void solve(int m)
int l = 1;
int r = m;
ma[l][l] = -1; ma[l][r] = 1; ma[r][l] = 0; ma[r][r] = 1;
l++;
r--;
while(l < r)
ma[l][l] = -1; ma[l][r] = 1; ma[r][l] = 0; ma[r][r] = 1;
l++;
r--;
}puts("yes");
for(int i = 1; i <= m; i++)
puts("");
}}int main()
printf("case %d: ",cas);
solve(res);
}return
0;}
FZU 1911 矩陣快速冪
題意 給乙個n,讓你輸出乙個s n s n 的矩陣 s n 是前n項斐波那契的和 m 這個矩陣必須滿足每一行和每一列中任意兩個的和不能相等 思路 奇數肯定是無解的,因為奇數總有一行是相同的 偶數的情況,自己打個6 6和4 4的表就看出來規律了 就是把整個矩形分成三部分,左上部分和右下部分和從右上角到...
快速冪(矩陣快速冪)
求 3 0 3 1 3 n mod 1000000007 input 輸入乙個數n 0 n 10 9 output 輸出 計算結果 sample input 3sample output 40 分析 利用等比數列的求和公式得所求和是 3 n 1 1 2,如果暴力求3 n 1 會超時,這裡引入快速冪來...
快速冪 矩陣快速冪
快速冪 正常情況下求乙個數的冪時間複雜度為o n 而快速冪能把時間複雜度降到o logn 舉個例子 求5的13次方 思想首先把13化為二進位制 1101,即13 1101 8 1 4 1 2 0 1 1 即5 13 58 1 54 1 52 0 5 1 15 5 8 1 5 4 1 5 2 0 5 ...