题解:P13646 [NOISG 2016] LunchBox

贪心+排序

贪心主要思想:

每次选最小花费,即要求午餐盒数量最小的学校。

代码实现思路:

先对数组 kkk 排一次序(升序),每次选择最小的 kik_iki,如果不能再选了,就直接输出答案就可以了。

AC code:

复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	int k,n;
	cin>>k>>n;
	int a[70000];
	for(int i=0;i<n;i++) cin>>a[i];
	sort(a,a+n);
	int cot=0;
	for(int i=0;i<n;i++){
		if(a[i]>k){//不能选了就停止
		    break;
		}
		k-=a[i];
		cot++;
	}
	cout<<cot;
	return 0;
}