hdoj2045动态规划
2016-05-07 17:41
204 查看
#include<iostream>
using namespace std;
int main(void)
{
int n,i;
long long s[50];
s[0]=3,s[1]=6,s[2]=6;
for(i=3;i<51;++i)
s[i]=s[i-1]+2*s[i-2];
while(cin>>n)
{
cout<<s[n-1]<<endl;
}
}
/*【动态规划】
:把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,
逐个求解,创立了解决这类过程优化问题的新方法——动态规划。
f(n)为n个格子的方法数目,假设第n-1个格子的颜色跟第1个相同,
因为第n-1个格子颜色已确定,第n个格子可以涂的颜色有两种,
故为2*f(n-2);第n-1个格子的颜色跟第1个不相同时,
f(n)=f(n-1);所以动态方程为f(n)=f(n-1)+2*f(n-2);
*/
#include<iostream>
using namespace std;
int main(void)
{
int n,i;
long long s[50];
s[0]=3,s[1]=6,s[2]=6;
for(i=3;i<51;++i)
s[i]=s[i-1]+2*s[i-2];
while(cin>>n)
{
cout<<s[n-1]<<endl;
}
}
/*【动态规划】
:把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,
逐个求解,创立了解决这类过程优化问题的新方法——动态规划。
f(n)为n个格子的方法数目,假设第n-1个格子的颜色跟第1个相同,
因为第n-1个格子颜色已确定,第n个格子可以涂的颜色有两种,
故为2*f(n-2);第n-1个格子的颜色跟第1个不相同时,
f(n)=f(n-1);所以动态方程为f(n)=f(n-1)+2*f(n-2);
*/
相关文章推荐
- VS2008高版本VC使用微软串口控件mscomm小结
- c++实验5-项目1数组分离
- 排列组合列出所有情况之类的问题
- 16进制
- 10的阶乘
- [SICP]函数定义
- glsl基础
- 【转】svn服务器IP修改后,本地怎么跟新svn同步,svn relocate 操作
- smarty中常用方法(在php文件中使用) append ,clearallassign, clearassign, fetch ,getconfigvars,gettemplatevars
- Swift-贝赛尔曲线实现画图板 && 截图保存到相册中
- 十进制转化为十六进制
- jQuery mobile 监听页面的各种生命周期
- 比较数的大小(选择法)
- 10个随机数
- 【转】SVN的UUID错误
- SSH-Web项目中 .classpath、.mymetadata、.project文件的作用
- 【Raspberry Pi 3试用体验】+编译opencv
- 2015阿里&看雪移动安全挑战赛-第一题
- STL学习——set/map/multiset/mulitmap篇
- 选择排序法