动态规划典型例题_第1页
动态规划典型例题_第2页
动态规划典型例题_第3页
动态规划典型例题_第4页
动态规划典型例题_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/1动态规划典型例题1、单调递增最长子序列

描述

求一个字符串的最长递增子序列的长度

如:dabdbf最长递增子序列就是abdf,长度为4

输入

第一行一个整数0<n<20,表示有n个字符串要处理

随后的n行,每行有一个字符串,该字符串的长度不会超过10000输出

输出字符串的最长递增子序列的长度

样例输入

3

aaa

ababc

abklmncdefg

样例输出

1

3

7

2、最长公共子序列

描述

如题,需要写一个程序,得出最长公共子序列。

tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(LongestCommonSubsequence)。其定义是,一个序列S,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则S称为已知序列的最长公共子序列。

输入

第一行给出一个整数N(0<N<100)表示待测数据组数

接下来每组数据两行,分别为待测的两组字符串。每个字符串长度不大于1000.

输出

每组测试数据输出一个整数,表示最长公共子序列长度。每组结果占一行。

样例输入

2

asdf

adfsd

123abc

abc123abc

样例输出

3

6

3、括号匹配

时间限制:1000ms|内存限制:65535KB

描述

给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。

如:

[]是匹配的

([])[]是匹配的

((]是不匹配的

([)]是不匹配的

输入

第一行输入一个正整数N,表示测试数据组数(N<=10)

每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,

S的长度不超过100

输出

对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组

测试输出占一行

样例输入

4

[]

([])[]

((]

([)]

样例输出

3

2

4、完全背包

描述

直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是c,价值是w。求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大。本题要求是背包恰好装满背包时,求出最大价值总和是多少。如果不能恰好装满背包,输出NO

输入

第一行:N表示有多少组测试数据(N<7)。

接下来每组测试数据的第一行有两个整数M,V。M表示物品种类的数目,V

表示背包的总容量。(0<M<=2000,0<V<=50000)

接下来的M行每行有两个整数c,w分别表示每种物品的重量和价值

(0<c<100000,0<w<100000)

输出

对应每组测试数据输出结果(如果能恰好装满背包,输出装满背包时背包内物

品的最大价值总和。如果不能恰好装满背包,输出NO)

样例输入

2

15

22

25

22

51

样例输出

NO

1

5、工程

描述

有n个工人做两个工程A和B,每个工程都被分为相同的m份,给你第i个工人做A中的一份需要的时间Xi秒,和做B中的一份所需时间Yi秒,问最短需要多少时间可以完成这两项工程。

输入

第一行是一个整数t(1<=t<=100),表示有t组测试数据;

每组测试数据第一行有两个整数n(1<=n<=100),m(1<=m<=100).

接下来的n行,每行有两个整数Xi,Yi;

输出

输出最短时间,占一行。

样例输入

1

320

11

24

16

样例输出

18

6、回文字符串

时间限制:3000ms|内存限制:65535KB

描述

所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。

当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。

输入

第一行给出整数N(0<N<100)

接下来的N行,每行一个字符串,每个字符串长度不超过1000.

输出

每行输出所需添加的最少字符数

样例输入

1

Ab3bd

样例输出

2

7、最大和

时间限制:1000ms|内存限制:65535KB

描述

给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把这个子矩阵称为最大子矩阵。

例子:

0-2-70

92-62

-41-41

-180-2

其最大子矩阵为:

92

-41

-18

其元素总和为15。

输入

第一行输入一个整数n(0<n<=100),表示有n组测试数据;

每组测试数据:

第一行有两个的整数r,c(0<r,c<=100),r、c分别代表矩阵的行和列;

随后有r行,每行有c个整数;

输出

输出矩阵的最大子矩阵的元素之和。

样例输入

1

44

0-2-70

92-62

-41-41

-180-2

样例输出

15

8、整数划分

描述

整数划分是一个经典的问题。请写一个程序,完成以下要求。

输入

每组输入是两个整数n和k。(1<=n<=50,1<=k<=n)

输出

对于输入的n,k;

第一行:将n划分成若干正整数之和的划分数。

第二行:将n划分成k个正整数之和的划分数。

第三行:将n划分成最大数不超过k的划分数。

第四行:将n划分成若干个奇正整数之和的划分数。

第五行:将n划分成若干不同整数之和的划分数。

第六行:打印一个空行

样例输入

52

样例输出

7

2

3

3

3

提示

样例输出提示:

1.将5划分成若干正整数之和的划分为:5,4+1,3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1

2.将5划分成2个正整数之和的划分为:3+2,4+1

3.将5划分成最大数不超过2的划分为:1+1+1+1+1,1+1+1+2,1+2+2

4.将5划分成若干奇正整数之和的划分为:5,1+1+3,1+1+1+1+1

5.将5划分成若干不同整数之和的划分为:5,1+4,2+3

9、蚂蚁的难题

时间限制:2000ms|内存限制:65535KB

描述

蚂蚁是一个古玩爱好者,他收藏了很多瓶瓶罐罐。

有一天,他要将他的宝贝们一字排开,摆放到一个长度为L的展台上。

已知他有n件宝贝,每件宝贝的宽为w,由于这些瓶瓶罐罐的形状特殊,所以在摆放时需要至少X的宽度来摆放他们,(仅摆放时需要X的宽度,摆放后宽度仍为w)现在已知了每件宝贝的宽度wi,和摆放它们所需的宽度Xi。请你帮蚂蚁计算一下,在这个展台上,他最多能摆多宽的宝贝。

输入

有多组测试数据。

对于每一组测试数据:

第一行:nL分别代表有n件宝贝,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论