1 条题解

  • 0
    @ 2026-9-9 8:58:02

    题解

    思路

    若所有比值 Ai/BiA_i/B_i 都相同,则 AA 与 BB 成正比例,对任意 XX,两个点积也保持同号或同时为零,因此一定无解。

    做法

    反之,只要找到两个下标 i,ji,j 满足 AiBj>AjBiA_iB_j>A_jB_i,令 Xi=Aj+BjX_i=A_j+B_j、Xj=−(Ai+Bi)X_j=-(A_i+B_i),其余位置为 00。此时两个点积分别为 AiBj−AjBi>0A_iB_j-A_jB_i>0 与 BiAj−BjAi<0B_iA_j-B_jA_i<0,而构造出的数绝对值至多为 2×1052\times10^5,必然满足范围限制。

    扫描序列并将每个比值与第一个比值用交叉相乘比较;若始终相等就输出 No,否则根据交叉乘积的正负确定两个下标的先后,再按上述公式输出即可。

    复杂度

    交叉乘积和点积计算使用 64 位整数,算法对每组数据的时间复杂度为 O(N)O(N),空间复杂度为 O(N)O(N)。

    • 1

    信息

    ID
    1552
    时间
    3000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者