CF2123D.Binary String Battle

普及-

通过率:0%

AC君温馨提醒

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

题目描述

Alice 和 Bob 得到一个长度为 nn 的二进制字符串 ss,以及一个整数 kk(1≤k<n1\leq k < n)。

如果 Alice 能够将 ss 的所有字符都变成 00,则 Alice 获胜。如果 Alice 无法在有限步内获胜,则 Bob 获胜。

Alice 和 Bob 轮流操作,Alice 先手。

  • 在 Alice 的回合,她可以选择 ss 中任意一个长度为 kk 的子序列 ∗^{\text{∗}},然后将该子序列中的所有字符都变为 00。
  • 在 Bob 的回合,他可以选择 ss 中任意一个长度为 kk 的子串 †^{\text{†}},然后将该子串中的所有字符都变为 11。

注意,只要在游戏过程中(包括 Alice 和 Bob 的回合之间),字符串全部变为 00,Alice 就立即获胜。

请判断在双方都采取最优策略的情况下,谁会获胜。

∗^{\text{∗}} 字符串 ss 的子序列是 ss 中若干字符组成的集合,这些字符不必相邻。

†^{\text{†}} 字符串 ss 的子串是 ss 中一段连续的字符,这些字符必须相邻。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 kk(2≤n≤2⋅1052\leq n \leq 2\cdot 10^5,1≤k<n1\leq k < n)。

每个测试用例的第二行包含一个长度为 nn 的二进制字符串 ss。

保证所有测试用例中 nn 的总和不超过 2⋅1052\cdot 10^5。

输出格式

对于每个测试用例,输出一行,如果 Alice 能在最优策略下获胜,则输出 "Alice";否则输出 "Bob"。

输出不区分大小写。例如,"aLiCe"、"alice"、"ALICE" 和 "alICE" 都会被识别为 "Alice"。

输入输出样例

  • 输入#1

    6
    5 2
    11011
    7 4
    1011011
    6 1
    010000
    4 1
    1111
    8 3
    10110110
    6 4
    111111

    输出#1

    Bob
    Alice
    Alice
    Bob
    Bob
    Alice

说明/提示

在第三个样例中,Alice 可以选择由 s2s_2 组成的子序列,将 ss 变为 000000000000,她立即获胜。

在第四个样例中,可以证明 Alice 无法保证在有限步内将 ss 变为 00000000。

由 ChatGPT 4.1 翻译

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

首页