题目描述
n个物品,已知每个物品的重量,书包的承重固定,每个书包最多放两个物品,可以放一个物品或者两个物品。显然总重量要求总不超过书包承重,假设每个物品的重量都不超过书包承重,问最少需要几个书包?
输入
第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示物品个数和书包的承重。
接下来n行,每行一个正整数,表示每个物品的重量。重量不超过1000000000,并且每个物品的重量不超过m。
输出
输出一行,一个整数表示最少需要的书包个数。
跳跳的书包,C语言编程
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注【以下回答由 GPT 生成】
#include <stdio.h> int main() { int n, m, weight[10000]; scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) { scanf("%d", &weight[i]); } int count = 0; for (int i = 0; i < n; i++) { if (weight[i] == 0) { continue; } for (int j = i+1; j < n; j++) { if (weight[j] == 0) { continue; } if (weight[i] + weight[j] <= m) { count++; weight[i] = 0; weight[j] = 0; break; } } if (weight[i] != 0) { count++; } } printf("%d\n", count); return 0; }【相关推荐】
- 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7695182
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报