#4473. 数字分配问题
数字分配问题
当前没有测试数据。
题目背景
在数据处理与资源分配场景中,常常需要将一组元素与具有特定约束条件的容器进行匹配。本题模拟了这一经典场景:给定若干个具有数值范围限制的“盒子”和一组待分配的“数字”,判断是否存在一种一一对应的分配方式,使得每个数字都能满足其所在盒子的范围要求。
题目描述
现有 组测试数据。对于每组测试数据:
- 首先给定一个正整数 ,表示盒子的数量(同时也是数字的数量)。
- 接下来的 行,每行包含两个整数 和 (),分别表示第 个盒子能够容纳的数字的最小值和最大值(即数字 需满足 才能放入第 个盒子)。
- 最后一行包含 个整数 ,表示待分配给盒子的 个数字。
请你判断是否存在一种分配方案,将这 个数字不重复地分配到 个盒子中,且每个数字都满足其对应盒子的范围限制。若存在这样的方案,输出 YES;否则,输出 NO。
输入格式
第一行一个整数 (),表示测试数据的组数。
对于每组测试数据:
- 第一行一个整数 (),表示盒子和数字的数量。
- 接下来 行,每行两个整数 和 (),描述第 个盒子的范围。
- 最后一行 个整数 (,),表示待分配的数字。
输出格式
对于每组测试数据,在单独的一行中输出结果:YES 或 NO。
样例输入
2
3
1 3
2 4
3 5
2 3 4
2
1 2
1 2
1 3
样例输出
YES
NO
样例解释
第一组测试数据
- 盒子范围分别为:[1,3]、[2,4]、[3,5]
- 待分配数字:2、3、4
- 可行分配方案:
- 将数字 2 分配给第 1 个盒子(满足 )
- 将数字 3 分配给第 2 个盒子(满足 )
- 将数字 4 分配给第 3 个盒子(满足 )
- 因此输出
YES。
第二组测试数据
- 可以证明无论怎么分配都不能达到要求
数据范围与提示
- 数据规模:
- 测试数据组数 ,每组数据中 ,总数据量(所有测试数据的 之和)不超过 ,确保算法时间复杂度在 级别时可通过。