动态规划练习一之大盗阿福
2017-04-17 22:08
183 查看
其题意是,一个小偷要投钱,若连续偷两家的钱就会被发现,所以要求不被发现的情况下能得到的最多的钱数。
思路:由于要求钱数最多,且不被发现,就是考虑第i个银行抢不抢的问题,得到状态转移方程为:
b[i]=max(b[i-1],a[i]+b[i-2])
代码:
思路:由于要求钱数最多,且不被发现,就是考虑第i个银行抢不抢的问题,得到状态转移方程为:
b[i]=max(b[i-1],a[i]+b[i-2])
代码:
#include<iostream> #include<cmath> using namespace std; long long int a[100001],b[100001]; int main() { long long int i,j,k,l,m,n,x,y,max1; cin>>n; for (k=1;k<=n;k++) { cin>>m; for (i=2;i<=m+1;i++) { cin>>a[i]; b[i]=0; } b[1]=0; b[0]=0; for (i=2,max1=0;i<=m+1;i++) { b[i]=max(a[i]+b[i-2],b[i-1]); if (b[i]>max1)max1=b[i]; } cout<<max1<<endl; } }
相关文章推荐
- 动态规划练习--23(大盗阿福)
- 动态规划练习一之采药
- 动态规划练习题-23(大盗阿福)
- YTU OJ 3144: 动态规划进阶题目之大盗阿福
- 数字三角形问题--动态规划练习(1)
- 动态规划练习4
- 动态规划(3):熟练度练习(POJ 1458、最佳加法表达式、bailian2755、POJ3624、bailian1088)
- 动态规划练习一 16:踩方格
- 动态规划练习一 03:采药
- 动态规划练习一 总结
- 动态规划练习一 21题
- 动态规划练习一 三角形最佳路径问题
- 动态规划练习01:最长上升子序列
- 动态规划练习28:Maximum sum
- 动态规划练习——移动路线
- 编程练习-动态规划(生产线问题)
- 编程练习二(动态规划)
- 动态规划练习 7
- 练习3——动态规划总结
- 动态规划练习2--poj3616