1 条题解

  • 0
    @ 2026-4-21 23:22:01

    A. 问题解决 —— 详细题解 题目重述 简有 nn 个问题,难度分别为 d1,d2,,dnd_1, d_2, \dots, d_n,满足 dn>djd_n > d_j 对所有 j<nj < n(最后一个最难)。 她的能力值为整数 xx,能解决难度 x\le x 的问题,不能解决难度 >x> x 的问题。 已知她解决了前 n1n-1 个问题,但没有解决最后一个问题 dnd_n。 问:能否唯一确定 xx?若能,输出 xx;否则输出 "Ambiguous"。

    条件形式化 设 m=maxd1,d2,,dn1m = \max{d_1, d_2, \dots, d_{n-1}},即前 n1n-1 个问题的最大难度。

    因为她解决了所有前 n1n-1 个问题,所以每一个 djd_jj<nj<n)都满足 djxd_j \le x。 因此 xx 必须至少是这些难度中的最大值: xm. x≥m.

    因为她没有解决最后一个问题,所以 dn>xd_n > x,即 x<dn x<dn .

    由于 xx 是整数,综合得 mxdn1. m≤x≤dn−1.

    由已知 dn>md_n > m(最后一个严格大于前面所有),所以 dn1md_n - 1 \ge m,区间非空。

    唯一性分析 区间 [m, dn1][m,\ d_n-1] 中包含的整数个数为 (dn1)m+1=dnm. (dn−1)−m+1=dn−m.

    dnm=1d_n - m = 1,则区间内只有一个整数 x=mx = m。此时 xx 唯一确定,答案为 mm

    dnm2d_n - m \ge 2,则区间内至少有 mmm+1m+1 两个不同的整数,它们都满足条件(因为 m+1dn1m+1 \le d_n-1dnm2d_n - m \ge 2),所以 xx 不唯一,输出 "Ambiguous"。

    边界情况讨论 n=2n=2:前 11 个元素的最大值就是 d1d_1,最后一个 d2>d1d_2 > d_1。 若 d2=d1+1d_2 = d_1 + 1,则 x=d1x = d_1 唯一;否则 xx 可以是 d1,d1+1,,d21d_1, d_1+1, \dots, d_2-1 中的任意值,不唯一。 例如:[3,5][3,5]m=3m=3, d2=5d_2=5, 区间 [3,4][3,4] 有两个值,输出 Ambiguous。

    did_i 可能重复:前 n1n-1 个元素允许相等,取最大值即可。最后一个必须严格大于前面所有,所以 dnd_n 至少比 mm11

    xx 的范围:题目只要求 xx 是整数,没有其他限制(如不能超过 5050 等),所以区间内所有整数都是合法的。

    示例逐步解析 示例1 text 55 11 22 33 44 55 n=5n=5,前4个最大值为 m=4m=4dn=5d_n=5dnm=1d_n - m = 1 → 唯一,x=m=4x=m=4。输出 44

    示例2 text 88 88 88 55 33 44 66 88 1212 前7个最大值:遍历 8,8,5,3,4,6,88,8,5,3,4,6,8m=8m=8dn=12d_n=12dnm=42d_n - m = 4 \ge 2 → 不唯一,输出 Ambiguous。 可能的 xx8,9,10,118,9,10,11 都满足(例如 x=10x=10 能解所有前7个(难度≤8≤10),不能解12)。

    示例3 text 44 33 33 33 44 前3个最大值 m=3m=3dn=4d_n=4dnm=1d_n - m = 1 → 唯一,x=3x=3。输出 33

    算法步骤(极简) 对每个测试用例:

    读入 nn 和数组 dd

    计算 m=max(d[0],d[1],...,d[n2])m = \max(d[0], d[1], ..., d[n-2])

    d[n1]==m+1d[n-1] == m + 1,输出 mm;否则输出 "Ambiguous"。

    复杂度 时间:O(tn)O(t \cdot n)t1000t \le 1000n50n \le 50,轻松。

    空间:O(1)O(1) 额外(可边读边计算最大值)。 必要性:若 xx 是合法能力值,则必满足 xmx \ge m(否则存在某个前 n1n-1 个问题难度 >x> x 导致无法解决)且 x<dnx < d_n(否则最后一个会被解决)。所以 x[m,dn1]x \in [m, d_n-1]

    充分性:对任意整数 x[m,dn1]x \in [m, d_n-1],因为 xmx \ge m,所有前 n1n-1 个难度 mx\le m \le x,故可解;且 x<dnx < d_n,故最后一个不可解。所以每个这样的 xx 都是合法能力值。

    唯一性:区间长度 dnmd_n - m。若等于 11,仅有一个 xx;若大于 11,至少有两个,因此不唯一。

    综上,算法正确。

    • 1

    信息

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