CF1954F.Unique Strings

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

我们称两个字符串 aa 和 bb 是相等的,如果可以通过循环移位字符串 aa 得到字符串 bb。例如,字符串 0100110 和 1100100 是相等的,而 1010 和 1100 则不相等。

给定一个长度为 nn 的二进制字符串 ss,其前 cc 个字符为 1,后 n−cn-c 个字符为 0。

每次操作,你可以将一个 0 替换为 1。

请计算在不超过 kk 次操作内,最多可以得到多少个不同的字符串(不同指的是循环同构意义下的不同字符串)。由于答案可能很大,请输出答案对 109+710^9+7 取模后的结果。

输入格式

第一行包含三个整数 nn、cc 和 kk(1≤n≤30001 \le n \le 3000;1≤c≤n1 \le c \le n;0≤k≤n−c0 \le k \le n-c)——字符串 ss 的长度、前缀 1 的长度以及最多操作次数。

输出格式

输出一个整数,表示在不超过 kk 次操作内可以得到的不同字符串的数量,对 109+710^9+7 取模。

输入输出样例

  • 输入#1

    1 1 0

    输出#1

    1
  • 输入#2

    3 1 2

    输出#2

    3
  • 输入#3

    5 1 1

    输出#3

    3
  • 输入#4

    6 2 2

    输出#4

    7
  • 输入#5

    24 3 11

    输出#5

    498062

说明/提示

在第一个测试用例中,唯一可能的字符串是 1。

在第二个测试用例中,可能的字符串有:100、110 和 111。字符串 101 与 110 是循环等价的,因此不计入。

在第三个测试用例中,可能的字符串有:10000、11000、10100。字符串 10010 与 10100 循环等价,10001 与 11000 循环等价。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页