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示例
output示例
9 這題標題給的組合數學,但是我這題不會用盧卡斯寫了,萬能的盧卡斯到這gg了。
我寫的是矩陣快速冪+全排列。
不廢話了,直接上**。
qaq。#include
#include
#include
using
namespace
std;
#define ll long long
const
int mod=1e9+7;
int x[4]=;
struct maxna,b;
ll a,b;
maxn juzhen(maxn a,maxn b)}}
return c;
}void quickm(ll n)
a.m[0][3]=a.m[1][2]=a.m[2][1]=a.m[3][0]=0;
while(n)
ll ans=0;
doans+=tmp;
ans%=mod;
}while(next_permutation(x,x+4));
printf("%lld\n",ans);
}int main()
51Nod1122 機械人走方格 V4
四個機械人a b c d,在2 2的方格裡,一開始四個機械人分別站在4個格仔上,每一步機械人可以往臨近的乙個格仔移動或留在原地 同乙個格仔可以有多個機械人停留 經過n步後有多少種不同的走法,使得每個毯子上都有1機械人停留。由於方法數量巨大,輸出 mod 10 9 7的結果。input 輸入1個數n ...
51nod1122 機械人走方格 V4
矩陣快速冪求出每個點走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...
機械人走方格
一 有乙個xxy的網格,乙個機械人只能走格點且只能向右或向下走,要從左上角走到右下角。請設計乙個演算法,計算機械人有多少種走法。給定兩個正整數int x,int y,請返回機械人的走法數目。保證x y小於等於12。思路 共需走x y步,其中有x步向又走,y步向左走,即從x y步中選出x步的種類數,即...