#JLT05C. 2026年J组模拟赛10连测第5场-T3 程老师的值日表

2026年J组模拟赛10连测第5场-T3 程老师的值日表

文件读写

  • 输入文件duty.in
  • 输出文件duty.out

限制

  • 1000ms
  • 512MB

题目描述

程老师是全校出了名的细心,什么事都要提前规划好。开学第一天,他就坐在办公室里,对着一张空白表格发愁——这张表格上要写下这个学期全班的值日安排。

一个学期一共 nn 天,程老师需要从中挑选出 kk 天来安排值日。就在他准备动笔的时候,校医室发来了一条硬性规定:

任意两个值日不能安排在相邻的两天。换句话说,如果第 dd 天安排了值日,那么第 d+1d+1 天必须休息,不能连续两天都值日。

程老师皱了皱眉——这条规定打乱了他原本的计划。本来可以随便挑 kk 天的,现在却必须保证选出来的两天之间至少隔着一个休息日。他试着在草稿纸上列了几个方案,发现当 nn 和 kk 变大时,手动枚举根本列不完。

请你帮程老师算一算:在满足校医室规定的前提下,挑选 kk 天值日的方案一共有多少种?

答案可能很大,输出它对 109+710^9 + 7 取模的结果。

如果 k=0k = 0,即一天值日都不安排,方案数为 11。

输入格式

一行两个整数 n,kn, k,用一个空格隔开。

输出格式

一行一个整数,表示合法方案数对 109+710^9 + 7 取模的结果。

数据范围

测试点编号 n≤n \leq 特殊性质
1∼21 \sim 2 1010 无
3∼63 \sim 6 2020
7∼107 \sim 10 20002000
11∼1411 \sim 14 500500
15∼2015 \sim 20 20002000

对于 100%100\% 的数据,保证 1≤n≤20001 \leq n \leq 2000,0≤k≤n0 \leq k \leq n。

5 2
6
3 1
3
4 3
0

样例解释

样例1:n=5n = 5,k=2k = 2。所有合法选法为 {1,3}\{1, 3\}、{1,4}\{1, 4\}、{1,5}\{1, 5\}、{2,4}\{2, 4\}、{2,5}\{2, 5\}、{3,5}\{3, 5\},共 66 种方案。

难度 未评定
通过率 35.7%
尝试 28
通过 10
ID
3747
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关