欢迎光临散文网 会员登陆 & 注册

10分钟彻底搞懂“动态规划”算法

2023-06-18 09:18 作者:撅大欢喜  | 我要投稿

我写的:

  1. #include<iostream>
  2. using namespace std;
  3. const int N=101;
  4. int f[N],num[N],n;
  5. // 用于计算一个区间和的函数
  6. int getSum(int s,int e){
  7. int res=0;
  8. // cout<<endl;
  9. for(int i=s;i<=e;i++){
  10. // cout<<num[i]<<' ';
  11. res+=num[i];
  12. }
  13. // cout<<res;
  14. // cout<<endl;
  15. return res;
  16. }
  17. //主要的规划函数
  18. int dp(){
  19. int res=-0x3f3f3f3f;
  20. for(int i=n-1;i>=0;i--){
  21. f[i]=getSum(i,n-1);
  22. for(int j=i+1;j<n;j++){
  23. if(getSum(i,j)>f[i]) f[i]=max(f[i],getSum(i,j));
  24. }
  25. if(f[i]>res) res=f[i];
  26. }
  27. return res;
  28. }
  29. int main(){
  30. cin>>n;
  31. for(int i=0;i<n;i++){
  32. cin>>num[i];
  33. }
  34. cout<<dp();
  35. return 0;

答案大概就是这个罢(喜)

欢迎指正(大鞠躬)

10分钟彻底搞懂“动态规划”算法的评论 (共 条)

分享到微博请遵守国家法律