822 字
4 分钟
【洛谷】P1085[NOIP 2004 普及组] 不高兴的津津

【洛谷】P1085[NOIP 2004 普及组] 不高兴的津津#

原题跳转

原题描述:#

题目描述#

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入格式#

输入包括 77 行数据,分别表示周一到周日的日程安排。每行包括两个小于 1010 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式#

一个数字。如果不会不高兴则输出 00,如果会则输出最不高兴的是周几(用 1,2,3,4,5,6,71, 2, 3, 4, 5, 6, 7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

输入输出样例 #1#

输入 #1#

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

输出 #1#

3

说明/提示#

NOIP2004 普及组第 1 题

  • 2021-10-27:增加一组 hack 数据
  • 2022-06-05:又增加一组 hack 数据

题目分析#

简而言之:

  • 每天有两个数字:学校上课时间 + 妈妈安排上课时间。
  • 如果两者之和大于8,那天津津就会不高兴。
  • 找出最不高兴的一天(即和最大的那天),输出对应的星期几(1~7)。
  • 如果没有一天大于8,就输出0。

解题思路#

这种多组数据重复使用同一个公式计算的时候就是def函数定义大展身手的时候了。

首先我们得明确需要代码需求:

  1. 代码需要对每天输入的两门课时重复计算同一公式
  2. 需要存储7天的计算数据
  3. 需要判断7天内哪天最不高兴,都高兴则输出0

根据以上需求我们可以得出

  • 定义一个函数来计算每天的不高兴值,公式实现方式为学校上课时间+课外上课时间-8
  • 运用列表来进行7天内容的存储
  • 利用循环来对每天的不高兴值进行判断

解题#

def unhappy(x,y):#计算不高兴值公式
a=x+y
return max(a - 8, 0)
day=[]#创建空列表来进行每天数据的存储
for i in range(7):#获取输入的数值并将数值填入列表中
school,kewai=map(int,input().split())
day.append(unhappy(school,kewai))
first_unhappy=0#创建计数器用于记录哪天最不开心
for i in range(7):#历遍day列表里面的值,选出最大的值保存
if day[i]>day[first_unhappy]:#如果当前的不开心值大于first_unhappy
first_unhappy=i#以最大值替换掉当前的值
if max(day) == 0:#输出做判断
print(0)
else:
print(first_unhappy + 1)#列表索引从0开始的,所以要加一位
【洛谷】P1085[NOIP 2004 普及组] 不高兴的津津
https://mikufans.yuzhiyuan.top/posts/洛谷p1085/
作者
遇缘
发布于
2025-11-22
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

最后更新于 ,距今已过 316 天

部分内容可能已过时