2128: 炫耀手機
題目描述
小F終於買到了心儀的手機,當然是華爲的新款啦。小F有5個好朋友,她把新買的手機拿給朋友們看。手機就在她們手中傳遞了。小F先把手機給某個朋友,每個朋友欣賞完手機後就把手機傳給另外一個人欣賞。當然已經看過手機的人還可以繼續接過來欣賞。結果經過n次傳遞後,手機又回到小F手中(中間過程手機也可能回到過小F手中)。你能知道傳遞的過程中有多少種傳遞方式嗎?
輸入
多組測試數據,每組輸入一個整數n(1<=n<=20)
輸出
輸出傳遞的種數
樣例輸入
2
樣例輸出
5
題解:
這題不就是小學奧數嗎?
暴力出奇跡ヾ(≧▽≦*)o(數據水):
用a[i][j]表示當傳手機i次時,到編號爲j人的總方案數
初始狀態爲:
a[0][1]=1;
a[0][2]=0;
a[0][3]=0;
a[0][4]=0;
a[0][5]=0;
a[0][6]=0;
最終狀態爲
a[n][1]
代碼:
#include<bits/stdc++.h>
using namespace std;
int n;
long long a[25][10];
int main()
{
while(cin>>n)
{
a[0][1]=1;
a[0][2]=0;
a[0][3]=0;
a[0][4]=0;
a[0][5]=0;
a[0][6]=0;
for(int i = 1; i <= n; ++i)
{
for(int j = 1;j <= 6; ++j)
{
long long sum = 0;
for(int k = 1;k <= 6; ++k)
sum += a[i - 1][k];
a[i][j] = sum - a[i - 1][j];
}
}
cout << a[n][1] << endl;
}
return 0;
}