OneCoder Avatar
OneCodercoderli.com · 955 篇博文
一级

C++ 算法考级专栏

真题分析、矩阵探测、递归回溯与基础语法

🎨 视觉封面

【GESP】C++一级练习 luogu-P1534, 不高兴的津津(升级版)

📅 2024-12-04·✍️ OneCoder·计算中...·⏱️ 4 分钟
#GESP#C++#基础语句

GESP一级综合练习,需要一点程序解题的小思考,推荐练习,难度★✮☆☆☆。

luogu-P1534

题目要求

题目描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每天妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。

这次与 NOIp2004 普及组第一题不同的是:假设津津不会因为其它事不高兴,但是她的不高兴会(当然高兴也会)持续到第二天。请你帮忙检查一下津津以后 nn 天的日程安排,看看以后 nn 天她会不会不高兴(计算方法:用昨天不高兴程度加上今天上课总时间减去 88 后得到的数作为今天不高兴程度);输出以后 nn 天结束后不高兴程度和是多少。

输入格式

第一行共一个数 nn

第二行至第 n+1n+1 行,每行两个数,表示这天上学时间和课外补习班时间。

输出格式

一个数,这 nn 天过后的不高兴程度和。

样例输入 #1

BASH
7
5 3
6 2
7 2
5 3
5 4
0 4
0 6

样例输出 #1

BASH
-2

数据范围及约定

对于全部数据,上学时间和上课时间各不超过 88,和不超过 1616n3000n \le 3000


题目分析

  1. 理解题目要求

    • 每天有上学时间和课外补习时间
    • 一天总学习时间超过8小时会不高兴
    • 不高兴程度会持续到第二天
    • 需要计算n天后的总不高兴程度
  2. 解题思路

    • 每天的不高兴程度 = 前一天的不高兴程度 + (今天总学习时间 - 8)
    • 用变量记录前一天的不高兴程度
    • 用变量累加每天的不高兴程度
    • 循环n天,计算最终的不高兴程度总和

示例代码

CPP
#include <iostream>
using namespace std;
int main() {
    int a;  // 天数
    cin >> a;
    int b, c;  // b是上学时间,c是上课时间
    int ans = 0;  // 存储最终的不高兴程度总和
    int y = 0;  // 存储前一天剩余的不高兴程度
    for (int i = 1; i <= a; i++) {
        cin >> b >> c;
        int t = (c + b) - 8;  // 计算当天产生的不高兴程度(上学+上课时间-8)
        int t_1 = t + y;  // 当天总的不高兴程度 = 当天产生的 + 前一天剩余的
        ans += t_1;  // 累加到总和中
        y = t_1;  // 更新前一天的不高兴程度
    }
    cout << ans;  // 输出最终的不高兴程度总和
    return 0;
}

💡 OneCoder 资源指引

所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI

🤝 技术交流与答疑

欢迎加入:C++ GESP/CSP 考级答疑群(688906745)Java/Python交流群(982860385),点击可直接加群。

📚

猜你想读 · 相关文章推荐

OneCoder

OneCoder (lihongzheshuai)

一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com

💬 读者留言与交流

0 条讨论
✨ 支持 Markdown 语法格式
还没有留言,快来成为第一个讨论者吧!