当前位置: 首页 > article >正文

qsort应用

每天都会收到ai个礼物,到第n天的时候,然然发现他的宿舍被礼物搞得一团糟,所以然然打算到超市买一个柜子装礼物。但是超市有m个柜子,每个柜子都有不同的容量bi,然然想知道每个柜子最多可以装多少天的礼物(可以不从第一天开始装礼物)。同一天的礼物必须同时装进柜子或者同时不装进柜子(比如第一天收到2个礼物,你不能将它分解成1 + 1个礼物。)

输入格式:

第一行输入两个整数n,m。
第二行输入 n 个整数,表示第 i(1 <= i <= n)天然然收到了 ai 个礼物。
第三行输入 m 个整数,表示第 i(1 <= i <= m)个柜子的容量是 bi。

输出格式:

输出m个整数,表示第i(1 <= i <= m)个柜子最多可以装多少天的礼物。

输入样例:

在这里给出一组输入。例如:

3 2
1 5 2
2 4

输出样例:

在这里给出相应的输出。例如:

1 2

 

#include <stdio.h>
#include <stdlib.h> 
int compare(const void* p1, const void* p2)
{
 	return (int)(*(int*)p1 - *(int*)p2);    //->升序
    //return (int)(*(int*)p2 - *(int*)p1);    //->降序
}
 
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    int a[n];
    for (int i=0;i<n;i++)
        scanf("%d",&arr[i]);
    //int n = sizeof(a) / sizeof(a[0]);
    qsort(a, n, sizeof(a[0]), compare);
//第一个数组地址,第二个容量,第三个一个大小,第四确定升序降序
    while(m--)
    {
        int sum;
        scanf("%d",&sum); 
        int i=0;
        for (;sum>0 && i<n;i++)//先加1在判断
            sum-=a[i];
        if (sum>0)
            printf("%d",i);
        else printf("%d",i-1);
        if(m!=0)
            printf(" ");
    }
}


http://www.kler.cn/a/527180.html

相关文章:

  • 如何写美赛(MCM/ICM)论文中的Summary部分
  • 栈和队列特别篇:栈和队列的经典算法问题
  • AI大模型开发原理篇-4:神经概率语言模型NPLM
  • 134.力扣刷题--加油站--滑动窗口
  • Chrome浏览器编译系统研究与优化分析
  • YOLO11/ultralytics:环境搭建
  • Manticore Search,新一代搜索引擎之王
  • 算法【分组背包】
  • 鸿蒙开发在onPageShow中数据加载不完整的问题分析与解决
  • 线段树(Segment Tree)和树状数组
  • FFmpeg(7.1版本)在Ubuntu18.04上的编译
  • 【二叉搜索树】
  • 2025-1-28-sklearn学习(47) (48) 万家灯火亮年至,一声烟花开新来。
  • Linux网络编程中的零拷贝:提升性能的秘密武器
  • 【PLL】参考杂散计算example
  • C++ 中的类(class)和对象(object)
  • P11467 网瘾竞赛篇之 generals 大法好
  • Java中的线程池参数(详解)
  • Python 学习进阶技术文档
  • Keepalived高可用集群入门学习
  • electron 应用开发实践
  • Android逆向(Mitmproxy)
  • 【自学笔记】JavaWeb的重点知识点-持续更新
  • Oracle11g数据库安装及建库教程
  • JavaScript 创建对象的8种方式?
  • Git进阶之旅:tag 标签 IDEA 整合 Git