信息
- ID
- 1641
- 时间
- 5000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
记非负整数 x 在 A,B 中的出现次数分别为 a(x),b(x),两个序列中 −1 的总数为 u。
固定最终公共和 z 后,必须有 z 不小于所有已知元素;已知的 x 与 z−x 最多能组成 min(a(x),b(z−x)) 对,因此已知—已知位置的最大数量为 f(z)=∑xmin(a(x),b(z−x))。其余位置只要至少一侧是 −1 就可以补成非负数,所以可行的充要条件是 f(z)≥N−u。
若 N−u≤0,答案直接为 Yes。否则可行的 z 必然等于某个已知 A 值与某个已知 B 值之和。枚举两边所有不同的已知值对,把对应的 min(a(x),b(y)) 累加到 z=x+y,再检查是否存在 z 同时满足下界与匹配数要求。
不同值的数量均不超过 N,时间复杂度为 O(N2),空间复杂度为 O(N2) 的最坏键数。