%ddd 2023-11-17 20:20 采纳率: 86.7%
浏览 4
已结题

跳跳的书包,C语言编程

题目描述
n个物品,已知每个物品的重量,书包的承重固定,每个书包最多放两个物品,可以放一个物品或者两个物品。显然总重量要求总不超过书包承重,假设每个物品的重量都不超过书包承重,问最少需要几个书包?
输入
第一行包含两个正整数n (0<n<=10000)和m (0<m<=2000000000),表示物品个数和书包的承重。
接下来n行,每行一个正整数,表示每个物品的重量。重量不超过1000000000,并且每个物品的重量不超过m。
输出
输出一行,一个整数表示最少需要的书包个数。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-17 22:27
    关注

    【以下回答由 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;
    }
    


    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月17日

悬赏问题

  • ¥30 不会,学习,有偿解答
  • ¥15 SQL查询语句报错(检查)
  • ¥15 此表中公式应该怎么写
  • ¥15 求HI-TECH PICC 9.50 PL3安装包
  • ¥15 下载ctorch报错,求解
  • ¥15 如何入门学习c语言,单片机
  • ¥15 idea 编辑语言的选择
  • ¥15 Windows下部署Asmjit
  • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
  • ¥30 微信小程序 前端页面内容搜索