1 条题解

  • 0
    @ 2025-8-22 13:51:16

    注意到给的是格子上下左右的边线,上下只能帮助确定它在第几行,左右只能确定它在第几列,所以把行和列分开计算。

    而给上下边线找第几行就相当于给数组相邻的两个元素,找它们在数组里出现的位置和次数。我们把数组里相邻的两个元素压成一个(比如 bi=ai×m+ai+1b_i=a_i\times m + a_{i+1}),那就是找数组元素出现位置和次数。

    所以我们要求这个数组的逆数组,但是值域很大,用 std::map 或者 std::unordered_map 记录一下就可以了。

    • 1

    信息

    ID
    91
    时间
    1000ms
    内存
    128MiB
    难度
    8
    标签
    递交数
    42
    已通过
    6
    上传者