OCAC暑期比赛第二场 B题 日常浇花 题解

日常浇花
原题链接:http://codeforces.com/problemset/problem/149/A
【题目描述】
2018年12月31号晚,当聪聪的父母给阳台上的花浇完水之后,这对夫妻准备去南极看极光,并且在2020年1月1号的早上再回家。
他们留下了聪聪一个人在家,并且给聪聪布置了一项任务:浇花!
聪聪知道,在第i个月,如果它坚持给花每天早上、中午、晚上各浇一次水,那么在月底的时候这朵花就会长高ai厘米;
如果在第i个月,聪聪没有坚持做到这一点的话(比如哪天早上睡过头了),月底的时候这朵花就不会长高。
聪聪知道,如果在爸妈回来的时候,花长高的高度小于 k 厘米,它的爸妈就会发现他没有好好浇花。
请问聪聪最少需要浇几个月的花,使得花增长的高度能够大于等于 k 厘米(也就是说:爸妈回来之后发现花长高了至少k厘米)。
【输入格式】
输入的第一行包含一个整数k(0<=k<=100)。
输入的第二行包含12个整数,两个正数之间以一个空格分隔,其中第i个整数用于表示ai(1<=ai<=100)。
【输出格式】
输出包含一个整数,用于表示聪聪最少需要浇花的月数。
如果聪聪无论怎样都无法让花增长至少 k 厘米,输出 -1。
【样例输入1】
5
1 1 1 1 2 2 3 2 2 1 1 1
【样例输出1】
2
【样例输入2】
0
0 0 0 0 0 0 0 1 1 2 3 0
【样例输出2】
0
【样例输入3】
11
1 1 4 1 1 5 1 1 4 1 1 1
【样例输出3】
3
【题目分析】
本题涉及算法:贪心。
我们只需要设一个变量tot,tot初始等于0,
然后对数组 a 从大到小进行排序,然后依次将数组 a 中的值加入到 tot ,知道 tot >= k。
如果 k == 0,那么聪聪就不需要浇花,直接输出0;
如果遍历结束的时候 tot 还是小于 k,那么输出-1。
实现代码如下:

#include <bits/stdc++.h>
using namespace std;

int k, tot, a[12];
inline bool cmp(int a, int b) { return a > b; }

int main() {
    cin >> k;
    for (int i = 0; i < 12; i ++) cin >> a[i];
    sort(a, a+12, cmp);
    if (k == 0) {
        cout << 0 << endl;
        return 0;
    }
    for (int i = 0; i < 12; i ++) {
        tot += a[i];
        if (tot >= k) {
            cout << i + 1 << endl;
            return 0;
        }
    }
    cout << -1 << endl;
    return 0;
}

原文地址:https://www.cnblogs.com/ocac/p/11130963.html

时间: 2024-08-27 18:50:30

OCAC暑期比赛第二场 B题 日常浇花 题解的相关文章

OCAC暑期比赛第二场 C题 瑶瑶2356 题解

瑶瑶2356原题链接:http://codeforces.com/problemset/problem/734/B[题目描述]最近瑶瑶在房间里面发现了一个神秘的盒子.她打开盒子,发现里面存放了若干张卡片,每张卡片上面都有一个数字.瑶瑶输了一下,卡片上面的数字只有4种数值:2,3,5,6.并且,她统计了一下,一共有k2张数值为2的卡片,有k3张数值为3的卡片,有k5张数值为5的卡片,有k6张数值为6的卡片.瑶瑶最喜欢的数字是 32 和 256.所以它发现可以用这些卡片拼成数字 32 或者 256.

OCAC暑期比赛第一场 G题 男孩或者女孩 题解

男孩或者女孩原题链接:http://codeforces.com/problemset/problem/236/A[题目描述]现如今,很多男孩在论坛中使用漂亮女孩的照片作为头像.所以确定一个用户的性别就变成了一个困难的事情.去年,我们的聪聪进入了一个论坛,并且和一个(他认为是)女生相谈甚欢.他们聊得非常投机,满满地,他们开始了网恋.但是,就在昨天,聪聪和她的“女朋友”在现实世界中碰了面,并且发现这个“她”其实是一个非常强壮的男人!我们的聪聪倍感心伤,感觉不会再爱了.于是我们的聪聪提出了一套根据用

OCAC暑期比赛第一场 E题 有用的数学 题解

有用的数学原题链接:http://codeforces.com/problemset/problem/339/A不过在原题基础上做了一些强化,以巩固学生对输入的处理能力.[题目描述]聪聪是爱丽丝魔法学院的三年级学生.他现在正在学习加法运算.老师写下了一组加法运算.聪聪需要计算这组运算的结果.老师给的问题是包含多个整数的加法(这些整数的数据范围在 1 到 1000 之间),并且两个正数之间有一个字符 "+" .但是如果公式中存在前一个元素比后一个元素大的情况,聪聪就不会算了.聪聪能够解决

OCAC暑期比赛第一场 I题 大小写转换密码锁 题解

大小写转换密码锁原题链接:http://codeforces.com/problemset/problem/131/A[题目描述]对于一个字符串 s 来说,它的大小写转换密码锁是对 s 的每一位字符进行大小写转换后得到的目标字符串.(也就是说,对于 s 上面的每一位字符 c,如果 c 是大写字母,则将其转换成对应的小写字母:如果 c 是小写字母,则将其转换为大写字母)但是并不是所有的字符串都是经过加密的,我们定义一个字符串是大小写转换密码锁,当且仅当:1.这个字符串全部都是大写字母:2.或者这个

OCAC暑期比赛第一场 D题 足球比赛中的危险状态 题解

足球比赛中的危险状态原题链接:http://codeforces.com/problemset/problem/96/A[题目描述]灵灵非常喜欢足球.有一天,灵灵正在看一场足球比赛,在看比赛的同时灵灵在纸上写下了每一位运动员当前的位置.为了简化所有运动员的位置的描述,灵灵将其简化成了仅由字符 "0" 和 "1" 描述的一个字符串.每一个 "0" 表示主队的一个运动员,每一个 "1" 表示客队的一个运动员.如果当前的位置中存在连

OCAC暑期比赛第一场 C题 字符串比较 题解

字符串比较原题链接:http://codeforces.com/problemset/problem/112/A[题目描述]给你两个字符串 a 和 b ,你需要比较它们在忽略大小写的情况下的字典序大小.忽略大小写的意思是:"abc" 和 "Abc" 在忽略大小写的情况下的字典序是相等的.在忽略大小写的情况下:如果字符串 a 的字典序比字符串 b 要小,输出 -1:如果字符串 a 的字典序和字符串 b 相等,输出 0:如果字符串 a 的字典序比字符串 b 要打,输出

OCAC暑期比赛第一场 J题 星球语言的翻译 题解

星球语言的翻译原题链接:http://codeforces.com/problemset/problem/41/A这里做了一定的修改,比如输入数据中的两个字符串可能不一样长.[题目描述]灵灵最近接到了一份翻译工作.他需要把一份土星文翻译成木星文.已知土星文和木星文都是由26个小写的英文字母组成的.而土星文和木星文的区别仅仅在于木星文就是土星文倒着念.比如土星文的 "code" 被翻译成木星文就是 "edoc".现在灵灵收到了一份土星文,并且他翻译好了一份木星文的初稿

OCAC暑期比赛第一场 A题 好长好长的字符串 题解

好长好长的字符串原题链接:http://codeforces.com/problemset/problem/71/A[题目描述]好长好长的字符串是像  "localization" 或者 "internationalization" 这样的字符串,这些字符串包含很多单词,所以你在抄写这些单词的时候很费力.我们定义一个字符串为 好长好长的字符串,当且仅当该字符串的长度大于 10.我们现在在对单词进行简化,所以所有的好长好长的字符串都需要被简化.我们的简化操作如下:对于

OCAC暑期比赛第一场 F题 字符串加密 题解

字符串加密原题链接:http://codeforces.com/problemset/problem/281/A[题目描述]灵灵想要对一个字符串进行加密.加密的方式很简单,就是将字符串的首字母变成大写.当然咯,如果字符串的首字母一开始就是大写的,你就不用进行任何操作了.注意,在加密的过程中,除了首字母,其他元素都是不需要进行任何转换的.[输入格式]输入包含一个仅包含大小写字母的字符串(长度不超过1000).[输出格式]输出加密后的结果.[输入样例1]ApPLe[输出样例1]ApPLe[输入样例2