#P16266. [蓝桥杯 2026 省 Python B 组] 星光共鸣

[蓝桥杯 2026 省 Python B 组] 星光共鸣

题目描述

小蓝是一名星际探险家。在一次遗迹探索中,他发现了一块“星光石板”。

石板上从左到右一共有 NN 个凹槽。对于每个凹槽,小蓝都可以选择嵌入一颗“星之碎片”,记作 11;也可以保持空置,记作 00。这样一来,整块石板的状态就可以用一个长度为 NN0101 串来表示。

根据遗迹的记载,石板会对“连续且完整的碎片段”产生共鸣。具体地,对于任意一个连续子区间 [l,r][l, r]1lrN1 \leq l \leq r \leq N),如果这一段对应的凹槽全部都嵌入了碎片,也就是区间内每一位都是 11,那么这个区间就会产生一次“星光共鸣”。反之,只要其中出现过一个 00,这段区间就不会产生共鸣。

因此,一种填充方案所产生的“星光共鸣总次数”,就等于它的 0101 串中“全为 11 的连续子区间”的数量。

例如,当 N=4N = 4,石板状态为 11011101 时:

  • [1,1][1,1][2,2][2,2][4,4][4,4] 对应 11,各产生 11 次共鸣;
  • [1,2][1,2] 对应 1111,再产生 11 次共鸣;
  • 其他子区间如 [2,3][2,3] 对应 1010[3,4][3,4] 对应 0101,这样的区间包含 00,不会产生共鸣。

所以该状态一共产生了 44 次共鸣。

现在,小蓝打算枚举所有可能的填充方案。由于每个凹槽只有放与不放两种选择,总共有 2N2^N 种不同的 0101 串。小蓝想知道:在这些方案中,有多少种方案的共鸣总次数至少为 KK

由于答案可能很大,请输出满足条件的方案数对 109+710^9 + 7 取模后的结果。

输入格式

输入仅一行,包含两个整数 NNKK,表示石板上的凹槽数量,以及要求达到的最少“星光共鸣”次数。

输出格式

输出一个整数,表示满足“星光共鸣总次数不少于 KK”的状态数量。由于答案可能很大,请输出对 109+710^9 + 7 取模后的结果。

4 4
5

提示

【样例说明】

N=4N = 4K=4K = 4 时,共有 55 种状态满足条件,分别为:

  • 11101110: 共鸣次数为 3+2+1=643 + 2 + 1 = 6 \geq 4
  • 11011101: 共鸣次数为 (2+1)+1=44(2 + 1) + 1 = 4 \geq 4
  • 10111011: 共鸣次数为 1+(2+1)=441 + (2 + 1) = 4 \geq 4
  • 01110111: 共鸣次数为 646 \geq 4
  • 11111111: 共鸣次数为 4+3+2+1=1044 + 3 + 2 + 1 = 10 \geq 4

所以答案为 55

【评测用例规模与约定】

对于 30%30\% 的数据,保证 N12N \leq 12

对于 100%100\% 的数据,保证 1N10001 \leq N \leq 10000Kmin(N(N+1)2,100)0 \leq K \leq \min(\frac{N(N+1)}{2}, 100)