美团 · 基础数学 · 算法编程题
美团 基础数学 n ≤ 1e5 时限 1 秒 / 256 MB

题目描述

小美正在一个无限大的二维坐标轴上运动,初始时她位于坐标 (x,y) 。
她将基于一个由 n 个整数组成的数组 a_1, a_2, ..., a_n 进行移动,对于第 i 次移动,她都需要选择这样两个整数 l 和 r ,满足 |l| + |r| = a_i ,随后移动到 (x + l, y + r) 这个位置。
现在请问, n 次移动后,她能否恰好移动到 (p,q) 这个位置。

输入输出

输入描述
第一行一个整数 t(1≤ t≤ 1000) ,表示数据组数。对于每组数据格式为:
第一行一个整数 n(1≤ n≤ 10^5) ,表示数组长度。
第二行 n 个整数,第 i 个整数为 a_i(0≤ a_i≤ 1) ,表示每次移动的距离。
第三行四个整数 x,y,p,q(-10^18≤ x,y,p,q≤ 10^18) ,分别表示起点的横纵坐标,终点的横纵坐标。
数据保证单个测试文件 Σ n≤ 10^5 。
输出描述
对于每组数据输出一个字符串,若可以恰好移动到 (p,q) 输出 "YES" ,否则输出"NO"。

样例共 1 组

样例 1
输入
2
2
0 0
1 1 1 1
3
1 1 1
1 1 2 2
输出
YES
NO

算法解析依据充分

考点:数组 · 基础数学

数据规模 n ≤ 1e5 | 限制 1 秒 / 256MB | 标准输入输出

题目画像

  • 数据规模:n ≤ 1e5,t ≤ 1e3
  • 元素值域:x ≤ 1e18,y ≤ 1e18,p ≤ 1e18(注意整数类型选择,避免溢出)
  • 复杂度门槛:只允许 O(n log n) 及更优,朴素 O(n²) 会超时。
  • 源站时限:1 秒(牛客口径,非本题专属门槛)

解题思路

推荐方向:基础数学

把题目转化为数学表达式,用公式或性质直接求值。

思路框架(基础数学 通法 · 非本题专属)

  1. 先写出题目要求的数学表达式或所求量的定义。
  2. 利用代数变形、不等式、函数单调性等性质化简。
  3. 按题面给的精度要求输出(浮点题注意误差)。
  4. 数据范围大时,往往存在 O(1) 或 O(log n) 的数学解,不必模拟。

实现要点:浮点输出通常要求相对误差不超过 1e-7,注意用 double/long double 或高精度小数。

复杂度:时间 O(1) ~ O(log n) | 空间 O(1)

该范式的通法易错点

  • 整数除法丢精度;浮点比较直接用 == 。
  • 题目要求「相对误差」而非「绝对误差」,输出格式没对齐。

对照本题

  • 数据规模 n ≤ 1e5,只允许 O(n log n) 及更优,朴素 O(n²) 会超时。
  • 元素值域最大到 1e18 —— 求和 / 相乘时记得开 64 位整数。

样例

样例 1

  • 输入:2 / 2 / 0 0 / 1 1 1 1 / 3 / 1 1 1 / 1 1 2 2
  • 输出:YES / NO

解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。

本题来源:2025年春招-美团-技术岗笔试;2025年春招-美团-算法岗笔试;2025年春招-美团-测试岗笔试 等。

‹ 上一题 全部编程题 下一题 ›
编程算法题为只读内容:无需作答,直接看题与解析 · 本站不提供在线判题 · 解析由校招宝本地引擎整理,非官方题解