1 条题解
-
0
题目大意
在一个外星日历系统中:
- 一年有 个月
- 一个月有 天
- 一周有 天(用字母
a~z表示) - 已知第 年 月 日是星期
a
要求计算第 年 月 日是星期几。
解题思路
核心思想
将目标日期转换为从基准日期(第 年 月 日)开始经过的总天数,然后对一周的天数 取模,得到对应的星期几。
天数计算公式
总天数 =
各部分含义:
- :前 年的总天数
- :当年前 个月的总天数
- :当月前 天的天数
星期计算
星期 =
'a' + (总天数 % w)因为:
- 第 年 月 日是
'a'(余数为 ) - 每过一天,星期字母循环前进一位
- 对 取模确保在字母范围内循环
算法步骤
- 读入
- 计算总天数:
tmp = (k-1)*m*d + (j-1)*d + (i-1) - 计算星期:
'a' + (tmp % w) - 输出结果
复杂度分析
- 时间复杂度:,只有常数次运算
- 空间复杂度:,只使用常数个变量
总结
本题是一个简单的日期计算问题,关键在于:
- 正确理解外星日历的规则
- 准确计算从基准日期到目标日期的总天数
- 利用模运算处理星期的循环特性
注意使用
long long类型防止数据溢出,因为 最大为 ,总天数可能很大。
- 1
信息
- ID
- 4459
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者