算法入门竞赛经典 动态规划

1.动态规划的条件:
所谓动态规划就是把一个问题,划分成每一个小问题,从第一个小问题不断推进到后面的子问题;每一个阶段可以分为这样的想法:
每个阶段包括2种东西,一个是决策,就是当前这个阶段要怎么做,宁一个叫做状态,就是用一个标志表示当前状态
2.
一维数组的动态规划;
a.最长单调子序列:
输入一串数组输出单调递增的最大子序列:
比如
输入132 4 56
子序列1 2 4 5 6最大输出的应该是 5;
思路:
定义dp[i]表示a数组里面最长单调的长度;
每次要判断一下这个尾巴是否大于前面的一个,如果比前面一个大就加上一;

b.题目:洛谷
思路:
这样的题目我们这样想,用dp[i]表示当前感染了多少人;
我们考虑最后一轮,最后一次论感染的人就是上一轮的人数加上新感染的人,得出递推公式;
*dp【i】=dp[i-1]x+dp[i-1];

/*
1.dp[i]表示感染了i个人;
2.dp[i]=dp[i-1]+x*dp[i-1]; 
3.dp[0]=1
*/
#<

猜你喜欢

转载自blog.csdn.net/m0_51373056/article/details/109454051