您的位置:首页 > 其它

NYOJ469(动态规划)

2012-03-28 09:17 148 查看
解题思路:题意很明确,就是让求满足条件:1、第一个数必须是1;2、相邻两个数之差不大于2 的排列的种数。

可以得出递推公式:f[i]=f[i-1]+f[i-3]+1,其中 f
即为所求。

View Code

1 #include<iostream>
2 #include<cstdio>
3 using namespace std;
4
5 int main()
6 {
7 int i,n,f[60];
8 f[1]=1;
9 f[2]=1;
10 f[3]=2;
11 for(i=4;i<60;i++)
12 f[i]=f[i-1]+f[i-3]+1;
13 while(cin>>n)
14 {
15 cout<<f
<<endl;
16 }
17 return 0;
18 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: