您的位置:首页 > 其它

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

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: