• 洛谷训练新手村之“顺序与分支”题解


    P1422 小玉家的电费

    题目链接:https://www.luogu.com.cn/problem/P1422
    题目大意:
    夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写:据闽价电[2006]27号规定,月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。
    解题思路:分段计价。
    实现代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    double a, b;
    int main() {
        scanf("%lf", &a);
        if (a <= 150) b = a * 0.4463;
        else if (a <= 400) b = 150 * 0.4463 + (a - 150) * 0.4663;
        else b = 150 * 0.4463 + 250 * 0.4663 + (a - 400) * 0.5663;
        printf("%.1lf\n", b);
        return 0;
    }
    

    P1085 不高兴的津津

    题目链接:https://www.luogu.com.cn/problem/P1085
    题目大意:
    津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
    解题思路:循环遍历一遍找最不高兴的那天。
    实现代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    int a[8], b;
    int main() {
        for (int i = 1; i <= 7; i ++) {
            cin >> a[i] >> b;
            a[i] += b;
        }
        b = 0;
        for (int i = 1; i <= 7; i ++) if (a[i] > 8 && a[i] > a[b]) b = i;
        cout << b << endl;
        return 0;
    }
    

    P1089 津津的储蓄计划

    题目链接:https://www.luogu.com.cn/problem/P1089
    题目大意:模拟题目要求的储蓄方案,判断会不会在某个月出现资金紧张,或者确定最终能够获得的钱。
    解题思路:模拟一下这个过程就可以解决这个问题。
    实现代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    int a, b, c;   // a表示这个月的花费,b表示目前存到妈妈那里的钱(最终计算前不包含利息),c表示手头的钱
    int main() {
        for (int i = 1; i <= 12; i ++) {
            cin >> a;
            if (a > c+300) {
                cout << -i << endl;
                return 0;
            }
            c += 300 - a;
            b += c/100 * 100;
            c %= 100;
        }
        cout << c + b/5*6 << endl;
        return 0;
    }
    

    P1909 买铅笔

    题目链接:https://www.luogu.com.cn/problem/P1909
    题目大意:
    P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。
    商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过nn支铅笔才够给小朋 友们发礼物。
    现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少nn支铅笔最少需要花费多少钱。

    解题思路:对于第i种铅笔,假设它有a盒,那么我们需要买 \(\lceil \frac{n}{a} \rceil\) 盒,我们用表达式 (n+a-1)/a 来表示 n 对 a 向上取整的结果。
    实现代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    int n, a, b, c = INT_MAX;
    int main() {
        cin >> n;
        for (int i = 0; i < 3; i ++) {
            cin >> a >> b;
            c = min(c, (n+a-1)/a*b);
        }
        cout << c << endl;
        return 0;
    }
    
  • 相关阅读:
    c++ 两个set合并
    L2-2 小字辈 (25 分)
    L1-1 天梯赛座位分配
    c++ 用 0x3f3f3f3f 设定最大int值的优点
    Treap(树堆)(转)
    new一个二维数组(转)
    Laplacian matrix(转)
    寒假计划制定
    寒假集训日志(八,九,十)——浪浪浪
    寒假集训日志(七)——数据结构
  • 原文地址:https://www.cnblogs.com/quanjun/p/11924355.html
Copyright © 2020-2023  润新知