PAT 2-09 装箱问题模拟(C语言实现)
来源:互联网 发布:朝日啤酒 知乎 编辑:程序博客网 时间:2024/05/22 04:25
题目描述:
假设有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(void){int n;int *p,*q;int i,j,maxCount;scanf("%d",&n);p = (int*)malloc(n*sizeof(int));q = (int*)malloc(n*sizeof(int));for(i=0;i<n;i++)scanf("%d",&(*(p+i)));for(i=0;i<n;i++)*(q+i) = 100;maxCount = 1;for(i=0;i<n;i++){j = 1;while(1){if(*(q+j-1) >= *(p+i)){*(q+j-1) -= *(p+i);if(j > maxCount)maxCount = j;printf("%d %d\n",*(p+i),j);break;}else{j++;}}}printf("%d\n",maxCount);return 0;}
0 0
- PAT 2-09 装箱问题模拟(C语言实现)
- PAT 数据结构 2-09 装箱问题模拟
- 浙大PAT 2-09. 装箱问题模拟 (解题思路)
- PAT 1015. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20)
- 2-09. 装箱问题模拟(20) (ZJU_PAT 模拟)
- 浙江大学PAT上机题解析之2-09. 装箱问题模拟
- PAT 2-06 数列求和(C语言实现)
- PAT 2-07 素因子分解(C语言实现)
- PAT 2-10 海盗分赃(C语言实现)
- PAT Basic 1008. 数组元素循环右移问题 (20)(C语言实现)
- 模拟实现C语言库函数
- C语言:模拟实现memmove
- C语言:模拟实现memcpy
- 【DP】 ACdream 1412 2-3 Trees
- 最大堆(c++)实现
- 找工作经验之——序
- 杭电oj A + B Again
- WEB应用程序开发原理
- PAT 2-09 装箱问题模拟(C语言实现)
- HttpClient和HtmlUnit的比较总结以及使用技巧(二)
- Hibernate学习笔记 第三章 高级映射关系
- 找工作经验之—— 一分耕耘,一分收获!
- 2-3 Trees - Acdream 1412 dp
- 【LeetCode】Algorithms 题集(二)
- Java中Bean与Map/Json/DBObject的相互转换
- uva11613 - Acme Corporation 费用流
- poj 2528 Mayor's posters