Problem1057--[视频]背包3(含价值的填满型01背包)

1057: [视频]背包3(含价值的填满型01背包)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 4  Solved: 4
[Status] [Submit] [Creator:]

Description

【题意】
从前有个山洞里,洞有n个宝石,第i个宝石拿到市场能卖m[i]块钱,但是要拿走第i颗宝石需要花费t[i]秒的时间。
山洞V秒之后就会倒塌。
求在能活着离开山洞的前提下,获取的宝石总价值最大。
【输入文件】
第一行有两个整数V(1 <= V <= 1000)和n(1 <= n <= 100) 接下来的n行每行两个整数t[i] 和 m[i](范围0~100) 
【输出文件】
输出一行,一个整数,即最大总价值。

【样例输入】

【样例输出】

70 3

71 100

69 1

1 2

3

16  5

5 4

8 9

7 5

3 4

6 9

18

 



【数据规模】
对于30%的数据,n<= 10;
对于全部的数据,n <= 100。

二维数组,填表格方法。

以第二组数据为例。假设我们要的答案就是f[5,16],就是眼前有5颗宝石且你有16秒的时间,你能取得的最大的价值量。

假如第5颗宝石你不想取,那么f[5,16]=f[4,16]

假如第5颗宝石你想拿,那么 f[5,16]=f[4,10]+9

 所以 f[5,16]=max( f[4,16] , f[4,10]+9)

16 5
5 4
8 9
7 5
3 4
6 9


具体实现如下表格:

f[i,j]

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

4

4

4

4

4

4

4

4

4

4

4

4

2

0

0

0

0

0

4

4

4

9

9

9

9

9

13

13

13

13

3

0

0

0

0

0

4

4

5

9

9

9

9

9

13

13

14

14

4

0

0

0

4

4

4

4

5

9

9

9

13

13

13

13

14

17

5

0

0

0

4

4

4

9

9

9

13

13

13

13

14

18

18

18

 



Source/Category