博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划算法--理解
阅读量:7123 次
发布时间:2019-06-28

本文共 1635 字,大约阅读时间需要 5 分钟。

一、含义

动态规划:多阶段(两段)最优化决策解决问题的过程就称为动态规划。

二、基本步骤

1、描述优解的结构特征。 

2、递归地定义一个最优解的值。 

3、自底向上计算一个最优解的值。

4、从已计算的信息中构造一个最优解。

三、何时采用动态规划

(1) 最优化原理:问题的最优解包含的字问题也有最优解,就称该问题具有最优子结构,满足最优化原理。

(2)有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(处理重叠子问题是动态规划的优势所在)

四、例题

单调递增最长子序列

设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。

输入格式:

输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开。

输出格式:

最长单调递增子序列的长度。

输入样例:

51 3 5 2 9

输出样例:

4

代码:

 

1      int[] a = new int[100]; 2      int []dp =new int[100];  3      int n; 4      Scanner inputScanner = new Scanner(System.in); 5         n = inputScanner.nextInt(); 6         for (int i = 0; i < n; i++) { 7             a[i] = inputScanner.nextInt(); 8         } 9         for (int i = 0; i < dp.length; i++) {10              dp[i] = 1;11         }12         int max =0;13         for (int i = 1; i < a.length; i++) {14             for (int j = 0; j <= i; j++) {15                 if (a[i]>a[j]) {16                     dp[i] = Math.max(dp[i], dp[j]+1);//更新max17                     max=dp[i];18                 }    19             }20         }21         System.out.println(max);22         inputScanner.close();

 

 租用游艇问题

长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1<=i<j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n所需的最少租金。

输入格式:

第1 行中有1 个正整数n(n<=200),表示有n个游艇出租站。接下来的第1到第n-1 行,第i行表示第i站到第i+1站,第i+2站, ... , 第n站的租金。

输出格式:

输出从游艇出租站1 到游艇出租站n所需的最少租金。

输入样例:

35 157

输出样例:

12

代码:

 

#include 
using namespace std;int main(){ int a[100][100]; int i=0,j=0,k,n; cin>>n; for(i=1;i
>a[i][j]; } } for(i=2;i
for (int p=k; p

 

转载于:https://www.cnblogs.com/Adam-Ye/p/9851851.html

你可能感兴趣的文章
《21天学通Java(第6版)》—— 1.1 Java语言
查看>>
《图数据库》——第 2 章 关联数据的存储选择
查看>>
《SQL学习指南(第2版)(修订版)》———1.4 内容前瞻
查看>>
使用Redis作为一个LRU缓存
查看>>
《易学C++(第2版)》——1.7 C++学习的常见问题
查看>>
《Google软件测试之道》—第1章1.3节组织结构
查看>>
jvm系列(七):jvm调优-工具篇
查看>>
Processing编程学习指南3.1 程序的运行流程
查看>>
ROS机器人程序设计(原书第2版)2.2 理解ROS计算图级
查看>>
《破茧成蝶——用户体验设计师的成长之路》一1.3 用户体验设计的特征
查看>>
R语言数据挖掘2.2.4.3 R语言实现
查看>>
Predicate和Consumer接口– Java 8中java.util.function包下的接口
查看>>
《Dreamweaver CS6完美网页制作——基础、实例与技巧从入门到精通》——2.3 网页色彩搭配知识...
查看>>
企业上云实战分享
查看>>
SSM框架Web程序的流程(Spring SpringMVC Mybatis)
查看>>
阿里云人工智能识别篮球动作视频
查看>>
Ali Kernel introduction
查看>>
前端常见兼容问题系列5:¥符号在部分Android APP的WebView中不见了
查看>>
基于Reactjs实现webapp(加精)
查看>>
超强、超详细Redis数据库入门教程
查看>>