003招行软开-员工考勤记录
问题描述:
给定一个字符串来代表一个员工的考勤纪录,这个纪录仅包含以下两个字符: ‘A’ : Absent,缺勤 ‘P’ : Present,到场
如果一个员工的考勤纪录中不超过两个’A’(缺勤),那么这个员工会被奖赏。如果你作为一个员工,想在连续N天的考勤周期中获得奖赏,请问有多少种考勤的组合能够满足要求
输入描述:
考勤周期的天数N(正整数)
输出描述:
这N天里能获得奖赏的考勤组合数
样例输入:
3
样例输出:
7
思路:
这题我一开始给想复杂了,看成了是考勤记录中不超过两个连续的A即可,然后自我怀疑了很久。(233333,有空了去看个眼科)
后来想了想这就是个组合问题(题目已经疯狂暗示了)。所以我们要做的就是从N个记录中分别求C(n,0),C(n,1),C(n,2)求和即可。
AC代码:
def solution():N = int(input())N = 1+N+N*(N-1)//2print(N)
solution()
注意不要在print()中计算,不然会超内存(不明白原理,等学了编译原理再来答)。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

