2 yaoxu80 yaoxu80 于 2013.12.20 16:27 提问

浙大实验....装箱问题模拟

假设有N项物品,大小分别为s1, s2, …, si, …, sN,其中si为满足1<= si<=100的整数。要把这些物品装入到容量为100的一批箱子(序号1~N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。

输入格式说明:

输入第1行给出物品个数N(<=1000),第2行给出N个正整数si(1 <= si <= 100,表示第i项物品的大小)。

输出格式说明:

按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。

样例输入与输出:

序号 输入 输出
1

8
60 70 80 90 30 40 10 20
60 1
70 2
80 3
90 4
30 1
40 5
10 1
20 2
5

2

6
100 90 80 70 60 50
100 1
90 2
80 3
70 4
60 5
50 6
6

3

1
2
2 1
1

1个回答

qq_26335811
qq_26335811   2015.03.14 23:15

#include
int main (void)
{
int n,sum,k,temp,index,j,i,count=1,num,x;
int s[100];
int a[100];
int c[100];
scanf("%d",&n);
j=0;
for(i=0;i scanf("%d",&s[i]);
}
for(j=0;j a[j]=s[j];
}
for(k=0;k index=k;
for(j=k+1;j if(a[i] index=j;
temp=a[index];
a[index]=a[j];
a[j]=temp;
}
for(i=0;i for(j=0;j if(a[j]==s[i])
c[i]=j;
}
sum=0;
num=1;
for(j=0;j sum=sum+a[j];
if(sum>100){
count++;
num++;
}
sum=0;
a[j]=num;
}
for(i=0;i<n;i++){
x=c[i];
printf("%d\n",a[x]);
}
printf("%d",count);
printf("\n");
return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
实验7-1-13 装箱问题(20 分)
实验7-1-13 装箱问题(20 分) 假设有N项物品,大小分别为s1、s2、…、si、…、sN,其中si为满足1≤s​i≤100的整数。 要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子, 把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程, 并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。 输入格式: 输入第一...
装箱问题(递归)
时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述   有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。   要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入格式   第一行为一个整数,表示箱子容量;   第二行为一个整数,表示有n个物品;   接下来n行
PAT 2-09 装箱问题模拟(C语言实现)
题目描述: 假设有N项物品,大小分别为s1, s2, …, si, …, sN,其中si为满足1i<=100的整数。要把这些物品装入到容量为100的一批箱子(序号1~N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。 输入格式说明: 输入
[Java] 实验12
60021 求字符串长度 import java.util.Scanner; public class StringLengths { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Obtain the string, like "hello#123#" ,
浙江大学Java上机实验TEST60032
浙江大学JAVA上机资源,亲测满分
PTA 7-5 装箱问题(20 分)
7-5 装箱问题(20 分)假设有N项物品,大小分别为s​1​​、s​2​​、…、s​i​​、…、s​N​​,其中s​i​​为满足1≤s​i​​≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。输入格式...
浙江大学C程上机题题库答案
一些很经典的上机题,适合初学者,链表类的比较少,每道题都有详细解答
浙江大学PAT上机题解析之2-09. 装箱问题模拟
假设有N项物品,大小分别为s1, s2, …, si, …, sN,其中si为满足1i 输入格式说明: 输入第1行给出物品个数N(i(1 i 输出格式说明: 按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。 样例输入与输出:   序号 输入 输出 1 8 60 70 80 90 30 40 10 20
2018搜狐编程题-贪心算法-二维装箱问题
参考原文请点击打开链接 题目描述 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你
浙大Java基础题库Test77题全源程序亲测能用
浙大Java基础课程题库所有题目的源程序,本人亲自编写,亲测能用