-
算法第三章
设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 输入格式: 输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开 输出格式: 最长单调递增子序列的长度 输入样例: 在这里给出一组输入。例如: 5 1 3 5 2 9 输出样例: 在这里给出相 -
第三章算法作业
1.单调递增最长子序列 1.1 递归方程式:f[i] = max{f[j]}+1 1.2 表的维度是一维; 填表范围是0到n;填表顺序是从左到右 1.3 时间复杂度:O(n^2) 空间复杂度:O(n) 2.对动态规划算法的理解 使用动态规划的问题特征是最优子结构性质和重叠子问题性质,该算法通常可以按 -
第三章总结
在一个地图上有n个地窖(n≤200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任意一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连 -
算法第三章作业
1.单调递增最长子序列 (1)递归方程式m[i]=max{m[j]}+1且1<=j<i&&a[j]<a[i],(1表示本身) (2)填表用到的是一个一维数组。 填表的范围为0~n 填表顺序是自左向右 (3)该算法的时间复杂度:O(n^2),用到了双重循环 空间复杂度:O(1),用到了一个大小固定的数 -
第三章作业
3-2 单调递增最长子序列 1.设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开。最长单调递增子序列的长度 解决方法:先排序,再求最大公共子序列。 递归方程式: c[i][j]=0 i>0; -
算法第三章上机报告
在一个地图上有n个地窖(n≤200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任意一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连 -
算法第三章作业
题目:单调递增最长子序列 问题描述: 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 输入格式: 输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开 输出格式: 最长单调递增子序列的长度 输入样例: 5 1 3 5 2 9 输出样例: 4 -
算法第三章作业
1.单调递增最长子序列 1.1 递归方程式:f[i] = max{f[j]}+1 1.2 表的维度是一维; 填表范围是0到n;填表顺序是从左到右 1.3 时间复杂度:O(n^2) 空间复杂度:O(n) 2.对动态规划算法的理解 使用动态规划的问题特征是最优子结构性质和重叠子问题性质,该算法通常可以按 -
算法第三章作业
1. 单调递增最长子序列 1.1 递归方程式:m[ i ]=max{ m[ j ] }+1 (1 <= j < i ) 1.2 表的维度: 二维 填表范围: 下三角 填表顺序: 从左往右, 1.3 算法时间复杂度:O( n^2 ) 算法空间复杂度:O( n^2 ) 2. 对动态规划算法的理解 根据最 -
算法第三章作业
单调递增最长子序列#include<iostream>using namespace std;int main(){ int n; int a[1000]; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; int b[1000]={0}; b[1]=1; int m