题目名称 1903. [国家集训队2000]叠放箱子
输入输出 boxes.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 GravatarAsm.Def 于2014-12-24加入
开放分组 全部用户
提交状态
分类标签
动态规划 网络流
分享题解
通过:6, 提交:9, 通过率:66.67%
Gravatarsxysxy 100 0.006 s 0.33 MiB C++
Gravatar_Itachi 100 0.007 s 0.33 MiB C++
Gravatar_Itachi 100 0.040 s 23.37 MiB C++
Gravatarxinging 100 0.047 s 15.89 MiB C++
Gravatar落尘 100 0.173 s 23.44 MiB C++
Gravatarztx 100 0.332 s 46.61 MiB C++
Gravatar落尘 60 0.169 s 23.44 MiB C++
Gravatar_Itachi 50 0.083 s 0.32 MiB C++
Gravatar梦那边的美好ET 30 0.307 s 0.33 MiB C++
关于 叠放箱子 的近10条评论(全部评论)
qaq记录方案............%%%
Gravatarsxysxy
2017-01-09 17:07 2楼
数组又开小了。。
结果换了个动规方程,看来我写的第一种比较快。
Gravatar_Itachi
2017-01-09 15:25 1楼

1903. [国家集训队2000]叠放箱子

★★   输入文件:boxes.in   输出文件:boxes.out   评测插件
时间限制:1 s   内存限制:256 MiB
货物堆放

(Boxes)

输入文件名:boxes.in

输出文件名:boxes.out

 

 

【问题】

    某港口有一批箱子,将其编号,分别为1N。每一个箱子的尺寸规格是一样的,现在要将其中某些箱子叠放起来,箱子叠放的规则如下:

一、每个箱子上最多只能直接叠放一个箱子;

二、编号较小的箱子不能放在编号较大的箱子之上;

三、每个箱子都给出了自身重量可承受重量,每个箱子之上的所有箱子重量之和不得超过该箱的可承受重量。

    为了节约堆放场地,希望你编程从中选出最多个箱子,使之能够在满足条件的情况下叠放起来。

 

【样例】

有五个箱子,如下表:

编号

自身重量

可承受重量

1

19

15

2

7

13

3

5

7

4

6

8

5

1

2

则最多可以叠放4个箱子,方案之一如:1235

 

【输入】

    第一行是一个整数N1N1000)。

    以下共有N行,每行两个整数,中间以空格分隔,分别表示每个箱子的自身重量与可承受重量,两个数值均为小于等于3000的正整数。

 

【输出】

    第一行应当输出最多可叠放的箱子总数M

    以下共M行,每行为一个箱子的编号,以箱子叠放顺序(从上至下,即编号由大到小)输出。

    若有多种叠放方案,任意输出其中一个即可。

 

【输入样例】

5

19 15

7 13

5 7

6 8

1 2

 

【输出样例】

4

5

3

2

1