1 条题解

  • 0
    @ 2026-4-18 19:23:41

    A. 特殊字符 详细题解

    题目核心理解

    给定一个整数 nn,你需要构造一个大写字母字符串

    定义:特殊字符是指恰好与一个相邻字符相等的字符。 要求字符串中恰好有 nn 个特殊字符。 如果无法构造,输出 NO


    核心思路

    1. 关键性质

    我们把连续相同的字符看作一个,观察每个块的贡献:

    • 块长度为 11:贡献 00 个特殊字符
    • 块长度为 22:贡献 22 个特殊字符
    • 块长度 3\ge 3:贡献 22 个特殊字符

    结论

    • 所有合法字符串的特殊字符总数一定是偶数
    • nn奇数时,无解
    • nn偶数时,一定有解

    2. 构造规则

    对于偶数 nn,最简单的构造方式: 交替使用两个不同字母,每两个字符一组,例如 AABB。 每组 AABB 都能贡献 22 个特殊字符。 最终字符串形如:AABB AABB\text{AABB AABB} \dots 重复 n2\dfrac{n}{2} 次。


    算法流程

    1. 输入测试用例数 tt
    2. 对每个测试用例,读入 nn
    3. 如果 nn奇数,输出 NO
    4. 如果 nn偶数
      • 输出 YES
      • 循环 n2\dfrac{n}{2} 次,每次拼接字符串 AABB
      • 输出构造好的字符串

    公式与复杂度分析

    有解的充要条件:

    nmod2=0n \bmod 2 = 0

    复杂度

    • 每组测试用例:O(n)O(n)
    • 总时间复杂度:O(tn)O(t \cdot n)
    • 可轻松处理 t50, n50t \le 50,\ n \le 50 的数据范围。
    • 1

    信息

    ID
    6573
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者