2-09. 装箱问题模拟(20)
来源:互联网 发布:coc墙升级数据 编辑:程序博客网 时间:2024/06/05 15:55
假设有N项物品,大小分别为s1, s2, …, si, …, sN,其中si为满足1<= si<=100的整数。要把这些物品装入到容量为100的一批箱子(序号1~N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。
输入格式说明:
输入第1行给出物品个数N(<=1000),第2行给出N个正整数si(1 <= si <= 100,表示第i项物品的大小)。
输出格式说明:
按照输入顺序输出每个物品的大小及其所在的箱子序号,每个物品占1行,最后一行输出所需的箱子数目。
样例输入与输出:
序号输入输出1860 70 80 90 30 40 10 20
60 170 280 390 430 140 510 120 252
6100 90 80 70 60 50
100 190 280 370 460 550 663
12
2 11
#include <stdio.h>int main(){int a,b;const int n = 100 ;int i,j,k;k = 0 ;scanf("%d",&a);char box[a],num[a];for(i=0; i<a; ++i){scanf("%d",&b);num[i] = b ;}for(i=0; i<a; ++i){box[i] = n ;}//for(i=0; i<a; ++i){//printf("%d\n",box[i]);//}/*以4个数字为例num[i] num[0]num[1]num[2]num[3] box[j] box[0]box[1]box[2]box[3]比较num[i]和box[j],若num[i]<=box[j],则box[j]=box[j]-num[i],并跳出执行num[i+1]。装填了num[i]的box[j]一定不等于100 */for(j=0; j<a; ++j){for(i=0; i<a; ++i){if(num[j] <= box[i]){printf("%d %d\n",num[j],i+1);box[i] = box[i] - num[j] ;break;}}}//for(i=0; i<a; ++i){//printf("%d\n",box[i]);//}for(i=0; i<a; ++i){if(box[i]!=n){++k;}}printf("%d",k);return 0;}
0 0
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20) (ZJU_PAT 模拟)
- 浙大PAT 2-09. 装箱问题模拟 (解题思路)
- PAT 1015. 装箱问题模拟(20)
- PAT 2-09 装箱问题模拟(C语言实现)
- PAT 数据结构 2-09 装箱问题模拟
- 浙江大学PAT上机题解析之2-09. 装箱问题模拟
- 《数据结构学习与实验指导》2-9:装箱问题模拟
- codevs 1464 装箱问题2 模拟 解题报告
- 7-50 装箱问题(20 分)
- 【codevs1464】装箱问题2
- 1464 装箱问题 2
- 装箱问题(递归)
- 装箱问题(NP问题)
- 比特币与数学:密码学有多可靠?
- 使用CocoaPods配置第三方类库
- C++ primer(第五版) 练习 4.22 个人code
- C++如何实现类似JAVA中加了FINAL关键字的类
- Jquery:服务器端接收客户端的多选值
- 2-09. 装箱问题模拟(20)
- BUPT2014新生暑假个人排位赛07
- hdu 1061 Rightmost Digit
- 背包问题
- 【leetcode】Best Time to Buy and Sell Stock I && II && III
- Java基础加强-java5的泛型
- POJ3373:Changing Digits(记忆化)
- cocos2d-x-3.2alpha0 如何创建新工程
- HDU 1281 棋盘游戏(匈牙利算法 二分最大匹配)