CF2065C2.Skibidus and Fanum Tax (hard version)
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是这道题的困难版本。在该版本中,m≤2⋅105。
Skibidus 有两个数组 a 和 b,分别包含 n 个和 m 个元素。对于 1 到 n 的每个整数 i,他最多可以执行一次以下操作:
- 选择一个整数 j(1≤j≤m),将 ai 赋值为 bj−ai。注意,经过此操作后,ai 可能变为非正数。
Skibidus 需要你的帮助,判断是否可以通过若干次上述操作,使得数组 a 为非递减序列。
∗ 若 a1≤a2≤⋯≤an,则数组 a 为非递减序列。
输入格式
第一行包含一个整数 t(1≤t≤104),表示表示测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 m(1≤n≤2⋅105,1≤m≤2⋅105)。
接下来一行包含 n 个整数 a1,a2,…,an(1≤ai≤109)。
接下来一行包含 m 个整数 b1,b2,…,bm(1≤bi≤109)。
保证所有测试用例中,n 的总和以及 m 的总和都不超过 2⋅105。
输出格式
对于每个测试用例,如果可以使 a 按非递减顺序排列,则在新的一行输出 YES,否则输出 NO。
输入输出样例
输入#1
5 1 3 5 9 1 1000000000 3 2 1 4 3 3 4 4 3 2 4 6 5 6 1 8 5 2 6 4 5 4 5 4 1000 3 1 9 8 7 8
输出#1
YES NO YES NO YES
说明/提示
- 在第一个测试用例中, [5] 已经是非递减序列。
- 在第二个测试用例中,可以证明无法使其非递减。
- 在第三个测试用例中,我们可以将 a2 更新为 b1−a2=6−4=2,将 a3 更新为 b3−a3=8−6=2。此时数组变为 [2,2,2,5],为非递减序列。
- 在最后一个测试用例中,我们可以对每个位置均执行操作,数组变为 [−1,0,1],是非递减序列。
输入解题思路,AI测评打分。不知道怎么写?