矩陣基礎1008 UVA 11885

2021-07-15 16:35:30 字數 1162 閱讀 3518

題意:

給出p,求出最小包圍的矩形的周長為p的形狀的個數,不包括矩形

思路:

發現如果包括矩形的話,這個個數就是乙個斐波那契序列

然後就先求出來包括矩形的,然後再減去就行了

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define lowbit(x) (x&(-x))

typedef

long

long ll;

const

int maxn = 100005;

const

int inf=(1

<<28)-1;

#define matrix_size 5

const ll mod = 987654321;

int size;

struct matrix

void output()

}matrix operator *(const matrix &b)const

}return ret;

}};matrix pow_m(matrix a,long

long n)

return ret;

}int main()

size=2;

matrix a,b;

a.clear(),b.clear();

a.mat[0][0]=a.mat[0][1]=1;

a.mat[1][0]=1;

b.mat[0][0]=1;b.mat[1][0]=1;

a=pow_m(a,n-5);

a=a*b;

int ans=a.mat[0][0];

n/=2;

if(n%2==0) ans=(ans+1)%mod;

ans=(ans-n/2*2+mod)%mod;

printf("%d\n",ans);

}return

0;}

uva108 Maximum sum(矩陣最大和)

題目 uva108 maximum sum 矩陣最大和 題目大意 給出乙個n n的矩陣,求這個矩陣的最大和。這個矩陣不是連通的,只能在這個矩陣內找子矩陣,不能越過邊界。解題思路 列舉起點和終點,每個起點和終點就是乙個矩陣,每個矩陣都算矩陣和,然後保留最大值。每個矩陣的值只要橫著相加一遍,再豎著相加一...

uva1386 矩陣快速冪

題意 乙個細胞自動機,有n個格仔,每個格仔的取值為0 m 1。給定距離d,每次操作後每個格仔的值將變為到它距離不超過d的所有格仔在操作之前的值之和除以m的餘數。思路 矩陣快速冪 include include define ll long long const int n 505 int n,m,d...

uva 11464 暴力列舉矩陣

這個題也是乙個列舉子集暴力,訓練賽的時候沒有做出來,這個對於矩陣的表示,偶數矩陣就是乙個位置的上下左右加起來都是偶數,才能算是偶數矩陣,直接暴力列舉第一行,然後確定下面的位置,然後如果有衝突那就不對,如果沒有衝突,然後比對,與之前的矩陣的變換,就可以獲得改變次數,然後每次取最小。include in...