博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ469(动态规划)
阅读量:5115 次
发布时间:2019-06-13

本文共 430 字,大约阅读时间需要 1 分钟。

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

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

ExpandedBlockStart.gif
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[n]<<endl;
16     }
17     
return 
0;
18 }

 

 

转载于:https://www.cnblogs.com/yueshuqiao/archive/2012/03/28/2420648.html

你可能感兴趣的文章
Interop type 'jmail.POP3Class' cannot be embedded. Use the applicable interface instead.
查看>>
Best Coder Round#25 1003 树的非递归访问
查看>>
SPOJ QTree【树链剖分】
查看>>
Process Node.js 进程
查看>>
学习进度条
查看>>
2017年4月14日
查看>>
第八篇:ZTree操作总结
查看>>
class layout basic 2
查看>>
Unity2D 小游戏之 RocketMouse
查看>>
H - A Shooting Game
查看>>
【洛谷P3369】 (模板)普通平衡树
查看>>
3-20 标准库:find库; 学习编程语言3节课(大多是旧识,全*栈)3-21 面向对象. Percent Strings; 元编程和Rails的相互理解...
查看>>
install and use zookeeper C client API
查看>>
java程序执行顺序
查看>>
建造者模式(Java与Kotlin版)
查看>>
常用算法之冒泡排序
查看>>
override和new的区别
查看>>
dom
查看>>
『ACM C++』 PTA 天梯赛练习集L1 | 048-49
查看>>
POSIX 线程详解
查看>>