当前位置:   article > 正文

【算法】算法之会议安排问题(C++源码)_求解会议安排问题。有一组会议 a 和一组会议室 b,a[i]表示第 i 个会议 的参加人数

求解会议安排问题。有一组会议 a 和一组会议室 b,a[i]表示第 i 个会议 的参加人数

一、任务描述

会议安排问题。有一组会议A和一组会议室B,A[i]表示第i个会议的参加人数,B[j]表示第j个会议室最多可以容纳的人数。当且仅当A[i] <= B[j]时,第j个会议室可以用于举办第i个会议。给定数组A和数组B,请设计算法计算最多可以同时举办多少个会议。
• 例如,A[]={1,2,3},B[]={3,2,4},结果为3;
• 若A[]={3,4,3,1},B[]={1,2,2,6},结果为2。

二、步骤描述

1、建立A,B数组来存储会议人数跟会议室大小,手动输入会议室人数个数和会议室个数。
2、将两数组sort从小到大排序。
3、若会议室比会议人数大:则会议室下标加一,会议室人数下标加一,count++;若会议室比会议人数小,会议室下标加一。
4、 输出结果count

三、运行结果截图

1
2

四、源代码(C++)

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int i,j,m,A[10],B[10];
    int count=0;
    cout<<"Please enter the number of meetings :";
    cin>>i;
    for(m=0;m<i;m++)
    {
        cout<<"Please enter the number of people in conference room "<<m+1<<" :";
        cin>>A[m];
    }
	cout<<"Please enter the number of meeting rooms :";
    cin>>j;
    for(m=0;m<j;m++)
    {
        cout<<"Please enter the capacity of room "<<m+1<<" :";
        cin>>B[m];
    }
    sort(A,A+i);
    sort(B,B+j);
    for(m=0;m<j;m++)
    {
        if(A[m]<=B[m])
        {
            count++;
        }
    }
    cout<<"Up to "<<count<<" meetings can be held at the same time!"<<endl;
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/182128
推荐阅读
相关标签
  

闽ICP备14008679号