2 条题解
-
3
对于这道题我只能呵呵了
#include <bits/stdc++.h> #define ll long long using namespace std; int n, a[105]; ll m, ans, sum; int main() { cin>>m>>n; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); for(int i=n;i>=1;i--) { sum+=a[i]; ans++; if(sum >= m) { cout<<ans<<endl; return 0; } } cout<<"NO"<<endl; return 0; }
-
1
已AC,放心食用
#include<bits/stdc++.h> using namespace std; int n,m,a[105],sum,ct;//sum代表最少的师傅加工几件,ct代表最少需要几位师傅 int main(){ cin>>m>>n; for(int i=1; i<=n; i++) cin>>a[i]; sort(a+1,a+n+1,greater<int>());//最少就说明师傅的工作效率要大,所以采取从大到小排序 for(int i=1; i<=n; i++){ if(sum<m)ct++,sum+=a[i];//累加件数 else{ cout<<ct; return 0;//代表师傅够,不够就不输出 } } cout<<"NO";//如果在for那里没return 0;的话,这里就会输出NO return 0; }
- 1
信息
- ID
- 323
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 3
- 标签
- 递交数
- 52
- 已通过
- 28
- 上传者