本文主要是介绍【C++】1326. 需要安排几位师傅加工零件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题:1326. 需要安排几位师傅加工零件
类型:贪心
题目描述:
某工厂有 n 个零件加工的师傅,每位师傅每天能够加工出不同数量的零件。
现有 m 个零件要求一天加工完,请问该工厂最少需要派几个师傅来完成这次零件加工任务,如果安排所有的师傅都参与加工也不能在一天内完成任务,请输出NO。
输入:
第一行有两个整数,用空格隔开;
第一个整数代表要加工的总零件个数 m (m≤10^6),第二个整数代表工厂的零件加工师傅的数量 n(n≤100)。
第二行有 n 个整数,分别代表每个师傅每天能够加工出来的零件数量(每个师傅每天加工的零件数量≤10^4)。
输出:
输出工厂在 1 天时间内加工所有零件需要的师傅数量,或者输出NO。
样例:
输入:
10 5
1 3 2 4 2
输出:
4
完整代码如下:
#include<bits/stdc++.h>
using namespace std;bool cmp(int a1,int a2){if(a1>a2){return true;}else{return false;}
}int main(){//一、分析问题//已知:总零件个数m,加工师傅的数量n,每个师傅每天能够加工出来的零件数量;//未知:该工厂最少需要派几个师傅来完成这次零件加工任务,如果安排所有的师傅都参与加工也不能在一天内完成任务,请输出NO。//关系:贪心。 //二、数据定义 int m,n,a[110],s=0; //三、数据输入cin>>m>>n;for(int i=0;i<n;i++){cin>>a[i];} //四、数据计算 sort(a,a+n,cmp);for(int i=0;i<n;i++){s+=a[i];if(s>=m){cout<<i+1;break;}}//五、输出结果 if(s<m){cout<<"NO";}return 0;
}
这篇关于【C++】1326. 需要安排几位师傅加工零件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!