炫耀手机

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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章