51nod1122 機械人走方格 V4

2022-03-30 15:43:33 字數 1082 閱讀 5525

矩陣快速冪求出每個點走n步後到某個點的方案數。然後暴力列舉即可

#include#include#include#includeusing namespace std;

#define rep(i,s,t) for(int i=s;i<=t;i++)

#define dwn(i,s,t) for(int i=s;i>=t;i--)

#define clr(x,c) memset(x,c,sizeof(x))

#define ll long long

int read()

const int nmax=5;

const int mod=1e9+7;

struct node

node operator*(const node&o)const

return ans;

}};node a,b;

int main()

ll ans=0;

rep(i,1,4) rep(j,1,4) if(i!=j) rep(k,1,4) if(k!=j&&k!=i) rep(t,1,4) if(t!=i&&t!=j&&t!=k)

ans=(ans+a.a[1][i]*a.a[2][j]%mod*a.a[3][k]%mod*a.a[4][t]%mod)%mod;

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

return 0;

}

1122 機械人走方格 v4

基準時間限制:1 秒 空間限制:131072 kb 分值: 160 難度:6級演算法題

收藏關注四個機械人a b c d,在2 * 2的方格裡,一開始四個機械人分別站在4個格仔上,每一步機械人可以往臨近的乙個格仔移動或留在原地(同乙個格仔可以有多個機械人停留),經過n步後有多少種不同的走法,使得每個毯子上都有1機械人停留。由於方法數量巨大,輸出 mod 10^9 + 7的結果。

input

輸入1個數n(0 <= n <= 10^9)
output

輸出走法的數量 mod 10^9 + 7
input示例

1
output示例

9

51Nod1122 機械人走方格 V4

四個機械人a b c d,在2 2的方格裡,一開始四個機械人分別站在4個格仔上,每一步機械人可以往臨近的乙個格仔移動或留在原地 同乙個格仔可以有多個機械人停留 經過n步後有多少種不同的走法,使得每個毯子上都有1機械人停留。由於方法數量巨大,輸出 mod 10 9 7的結果。input 輸入1個數n ...

51nod 1118 機械人走方格

m n的方格,乙個機械人從左上走到右下,只能向右或向下走。有多少種不同的走法?由於方法數量可能很大,只需要輸出mod 10 9 7的結果。第1行,2個數m,n,中間用空格隔開。2 m,n 1000 輸出走法的數量。2 3第一次看到覺得用搜尋寫,沒寫出來,但是還是覺得搜素可以實現的 下面用的是dp,等...

51nod 1118 機械人走方格

基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 m n的方格,乙個機械人從左上走到右下,只能向右或向下走。有多少種不同的走法?由於方法數量可能很大,只需要輸出mod 10 9 7的結果。input 第1行,2個數m,n,中間用空格隔開。2 m,n 1000 output ...