• 【华为OD】D卷真题200分:会议接待 C语言代码实现[思路+代码]


    【华为OD】2024年C、D卷真题集:最新的真题集题库 C/C++/Java/python/JavaScript

    【华为OD】2024年C、D卷真题集:最新的真题集题库 C/C++/Java/python/JavaScript-CSDN博客

    JS、python、Java、C、C++代码实现:

    【华为OD】D卷真题200分:会议接待 JavaScript代码实现[思路+代码]-CSDN博客

    【华为OD】D卷真题200分:会议接待 python代码实现[思路+代码]-CSDN博客 

    【华为OD】D卷真题200分:会议接待 Java代码实现[思路+代码]-CSDN博客 

    【华为OD】D卷真题200分:会议接待 C语言代码实现[思路+代码]-CSDN博客 

    【华为OD】D卷真题200分:会议接待 C++代码实现[思路+代码]-CSDN博客 

    题目描述:

    某组织举行会议,来了多个代表团同时到达,接待处只有一辆汽车,可以同时接待多个代表团,为了提高车辆利用率,请帮接待员计算可以坐满车的接待方案,输出方案数量。

    约束:

    1、一个团只能上一辆车,并且代表团人数(代表团数量小于30,每个代表团人数小于30)小于汽车容量(汽车容量小于100)

    2、需要将车辆坐满

    输入描述

    第一行 代表团人数,英文逗号隔开,代表团数量小于30,每个代表团人数小于30

    第二行 汽车载客量 ,汽车容量小于100

    输出描述

    坐满汽车的方案数量

    如果无解输出0

    示例1

    输入输出示例仅供调试,后台判题数据一般不包含示例

    输入

    5,4,2,3,2,4,9
    10

    输出

    4

    说明

    解释 以下几种方式都可以坐满车,所以,优先接待输出为4
     [2, 3, 5]
     [2, 4, 4]
     [2, 3, 5]
     [2, 4, 4]

    备注

    各代表团人数5,4,2,3,2,4,9

    汽车载客量  10

    输出 4
    解释 以下几种方式都可以坐满车,所以,优先接待输出为4
         [2, 3, 5]
         [2, 4, 4]
         [2, 3, 5]
         [2, 4, 4]

         7878688                                                         
                                                                
                  +---+                                                          
      3            |   |       ++                               +       +---|   
      |           |   | 3      +                6               +  |   +   |        +
      |      +     |   |       +         +                      +    |  +   |       +
      |      +    |   +---+    +        +        +++++          +   +  +   |        +
      |      +    | +      |   +   +----+        |   |          +   +  +   |        +
      |      +  3 | +      |   +   +    +      2 |   |     2    +   +  +   |        +
      |      +    | +      |   +   +    +        |   |          +   +  +   |        +
      |      +---+ +     |    |  |    +    ----+   |   +---+    |  |  +   |         +
      |      |     +     |    |  |    +    |       |   |   |    |  |  +   |         +
      |    1 |     +     | 8  |  |    +  1 |   |    | 1 |   | 1 |   |  +   |        +
      |      |     +     |    |  |    +    |   |    |   |   |   |   |  +   |        +
      |  +---+     +     +---+   |    ++---+    ++   +---+   +---+   |  +   |        +
      |  |         +         |   |    |         ++              |   |  |+   |        +
      |0 |         +         | 0 |  0 |         ++              | 0 |  |+   |        +
      |  |         +         |   |    |         ++              |   |  |+   |        +
      +---+         +          +-------+                       +---+| +|+   |        +
                    +                                                    +   |        +
        0   1   2   3   4   5   6   7   8   9  10  11  12 + v:    w  u m    u 1 0 2 4
     

    题目解析:

            使用递归来实现即可

    代码实现:

    1. #include
    2. #include
    3. int ret = 0;
    4. int all = 0;
    5. void dfs(int * nums, int n, int idx, int sum){
    6. if(idx == n){
    7. return ;
    8. }
    9. dfs(nums, n, idx + 1, sum);
    10. if(sum + nums[idx] == all){
    11. ret += 1;
    12. return ;
    13. }else if(sum + nums[idx] < all){
    14. dfs(nums, n, idx + 1, sum + nums[idx]);
    15. }
    16. }
    17. int main(){
    18. int nums[100] = {0};
    19. int n = 0;
    20. do {
    21. scanf("%d", &nums[n]);
    22. n++;
    23. }while(getchar() != '\n');
    24. ret = 0;
    25. all = 0;
    26. scanf("%d", &all);
    27. if(all == 0){
    28. printf("0");
    29. return 0;
    30. }
    31. dfs(nums, n, 0, 0);
    32. printf("%d\n", ret);
    33. return 0;
    34. }

  • 相关阅读:
    Dataworks实现接口调用
    Oracle数据库修改序列,Oracle中的主键值和序列中的值对应不上时的处理方式
    13_星仔带你学Java之接口、内部类、枚举
    基于哈希表对unordered_map和unordered_set的封装
    终于搞懂了 super(XXXX, self).__init__()的作用是啥了
    RoadBEV:鸟瞰视图下的路面重建
    动态数据模型分析与应用
    Hudi(1.0、2.0)简介
    软件考试学习笔记(希赛)
    进程间通信
  • 原文地址:https://blog.csdn.net/mars1199/article/details/139425591