一级
C++ 算法考级专栏
真题分析、矩阵探测、递归回溯与基础语法
🎨 视觉封面【GESP】C++一级练习 luogu-P1534, 不高兴的津津(升级版)
📅 2024-12-04·✍️ OneCoder·计算中...·⏱️ 4 分钟
#GESP#C++#基础语句
GESP一级综合练习,需要一点程序解题的小思考,推荐练习,难度★✮☆☆☆。
luogu-P1534
题目要求
题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每天妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。
这次与 NOIp2004 普及组第一题不同的是:假设津津不会因为其它事不高兴,但是她的不高兴会(当然高兴也会)持续到第二天。请你帮忙检查一下津津以后 天的日程安排,看看以后 天她会不会不高兴(计算方法:用昨天不高兴程度加上今天上课总时间减去 后得到的数作为今天不高兴程度);输出以后 天结束后不高兴程度和是多少。
输入格式
第一行共一个数 。
第二行至第 行,每行两个数,表示这天上学时间和课外补习班时间。
输出格式
一个数,这 天过后的不高兴程度和。
样例输入 #1
BASH
7
5 3
6 2
7 2
5 3
5 4
0 4
0 6
样例输出 #1
BASH
-2
数据范围及约定
对于全部数据,上学时间和上课时间各不超过 ,和不超过 ,。
题目分析
-
理解题目要求
- 每天有上学时间和课外补习时间
- 一天总学习时间超过8小时会不高兴
- 不高兴程度会持续到第二天
- 需要计算n天后的总不高兴程度
-
解题思路
- 每天的不高兴程度 = 前一天的不高兴程度 + (今天总学习时间 - 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 (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com
💬 读者留言与交流
还没有留言,快来成为第一个讨论者吧!