uoj#P942. 【WC2025】猫粮
【WC2025】猫粮
你的家里养了 $n$ 只小猫。到了饭点,你的猫都饿了,每一只都需要吃至少 $m$ 克的猫粮才能吃饱。
你的家里有两种猫粮:优质猫粮和普通猫粮。
- 优质猫粮的味道非常好,所以当你打开一袋优质猫粮后,所有没吃饱的小猫会来争抢,最后所有没吃饱的小猫中任意一只猫都有可能抢走这袋猫粮,并吃掉其中的所有猫粮。
- 普通猫粮的味道一般,所以当你打开一袋猫粮放在某一只小猫面前时,其他小猫不会争抢,而这只小猫会吃掉这个袋子里的所有猫粮。
在这两种情况下,即使占有猫粮的小猫只需要吃掉这袋猫粮的一部分就能吃饱,它也会吃掉整袋猫粮。
你有 $n$ 袋优质猫粮,其中第 $i$ 袋里有 $a_i$ 克;你还有 $n$ 袋普通猫粮,其中第 $i$ 袋里有 $b_i$ 克。所有猫粮加在一起的重量恰好等于 $n\times m$,也就是所有小猫吃饱所需要的猫粮重量。同时,所有袋子里的猫粮的重量都是 $1$ 至 $m-1$ 之间的整数。
为了喂饱所有小猫,你每次可以选择一袋猫粮打开,等待这袋猫粮被吃完之后再打开下一袋,直到所有猫粮都被吃完。你可以根据此时猫粮的食用情况决定之后猫粮的打开顺序以及将普通猫粮放在哪一只猫面前。你想知道,是否存在一种喂猫粮的方案,使得在每次打开优质猫粮时无论哪只没吃饱的猫抢到了猫粮,最终所有猫都能吃饱。
输入格式
本题有多组测试数据。
输入的第一行包含一个正整数 $T$ 表示数据组数。
接下来依次输入每组测试数据,对于每组测试数据:
第一行包含两个正整数 $n$ 和 $m$ 表示猫的数量以及每只猫需要的猫粮克数。
第二行包含 $n$ 个整数 $a_1,a_2,\cdots,a_n$ 描述 $n$ 袋优质猫粮的重量。
第三行包含 $n$ 个整数 $b_1,b_2,\cdots,b_n$ 描述 $n$ 袋普通猫粮的重量。
输出格式
对于每组测试数据输出一行包含一个字符串,如果存在满足条件的方案输出 Yes,否则输出 No。
样例 #1
样例输入 #1
2 2 90 60 20 70 30 2 10 3 5 6 6
样例输出 #1
Yes No
样例 $1$ 解释
第一组数据中,可以先打开重量为 $60$ 克的优质猫粮。无论被哪一只小猫吃掉,打开重量为 $30$ 克的普通猫粮喂给同一只小猫,这样这只小猫就吃饱了。
接下来打开重量为 $20$ 的优质猫粮,被剩下的小猫吃掉。
最后打开重量为 $70$ 的普通猫粮给这只小猫吃,这样两只小猫都吃到了 $90$ 克猫粮,就都吃饱了。
第二组数据中,可以证明不存在可以喂饱所有小猫的方案。
样例 #2
样例输入 #2
见附件
样例输出 #2
见附件
样例 $2$ 解释
该样例满足特殊性质 $\text{B}$。
数据范围
对于所有测试数据,保证:
- $1 \le T \le 50$;
- $1 \le n \le 40000,2 \le m \le 10^5$;
- 对于任意的 $1 \le i \le n$,有 $1 \le a_i, b_i \le m − 1$;
- $\displaystyle \sum_{i=1}^na_i+\sum_{i=1}^n b_i=nm$。
| 测试点编号 | $n\le$ | 特殊性质 |
|---|---|---|
| $1$ | $1$ | 无 |
| $2\sim 4$ | $2$ | 无 |
| $5\sim 7$ | $5$ | 无 |
| $8,9$ | $4\times 10^4$ | A |
| $10\sim 16$ | $4\times 10^4$ | B |
| $17\sim 20$ | $4\times 10^4$ | 无 |
特殊性质 A:保证 $m=3$。
特殊性质 B:保证任意两袋猫粮的重量互不相同,即对于任意的 $1\le i\lt j\le n$,保证 $a_i\neq a_j$,$b_i\neq b_j$ 且对于任意的 $1\le i,j\le n$,保证 $a_i\neq b_j$。
时间限制:1s
空间限制:512MB