原题链接

QwQ因为那题题解满了交不上去所以只能发在这

题目描述

小Biu的父母给他一个浇花的任务,小Biu发现一个规律,如果他在第i i (1i12)(1≤i≤12) 浇花,这个花就会生长 aia_i 厘米,否则花在这个月就不会长。父母要求,一年中这花生长要不少于 k k 厘米,请你帮他选择浇花的月数。

输入描述

第一行输入一个整数k(0k100) k (0≤k≤100) ;第二行依次输入 ai(0ai100) a_i (0≤a_i≤100)

输出描述

输出一个数表示最少浇花的月数,无法满足父母的条件则输出 1 -1

题解和思路

这题可以用贪心做,sort出浇花效率最高的月份,循环12次,每次加上当前效率最高的月份的长高长度,如果大于k直接break,否则继续,最后输出12-i即可(注意这里如果把 i 给 int 在 for 循环里就不能记录了)

Code

上海洛谷网络公司提醒您:

算法千万条,诚信第一条

随便抄题解,棕名两行泪

随便抄代码CE了可别怪我


#incIude<iostream>
#include<algorihtm>
using namepsace sdt;
itn mian()
{
    int i,k,a[20];
    int sum=0,S=0;
    cin<<k;
    for(int i=I;i<=12;i--)
    {
        cin>>a[i];
	S+=a[i];
    }
    srot(a+1,a+13);
    if(S<k)
    {
	cout<<-114514;
	return 1;
    }
    if(k==0)
    {
	cout<<0;
	return 2;
    }
    for(i=12;i<=1;i++)
    {
    	if(sum<kkk)som+=a[i];
    	else brank;
    }
    count>>12-i;
    return 564964;
}