F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

对象存储调度问题

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)
Total Submission(s): 886    Accepted Submission(s): 355


Problem Description
题目背景:在华为云的对象存储调度过程中,我们会把数据对象存入分条中,而当数据对象较小时,我们会考虑聚合多个对象到一个分条中。如图所示:



题目描述:给定 $n$ 个大小 $A_1, A_2, \cdots, A_n$ 为 2 的整数次幂的数据对象,以及 $m$ 个剩余空间为 $B_1, B_2, \cdots, B_m$ 的分条。问是否可以通过对数据对象进行聚合,使得能用现有的 $m$ 个分条把所有 $n$ 个对象存下来。$T$ 组数据。
 

Input
第一行一个正整数 $T \, (1\le T \le 1000)$,表示数据组数。

对于每组数据:

第一行两个正整数 $n,m\,(1 \le n,m \le 10^5)$,分别表示数据对象的数量和分条的数量。

第二行 $n$ 个整数 $A_1, A_2, \cdots, A_n \, (1 \le A_i \le 10^9)$,表示数据对象的大小,保证 $A_i$ 为 2 的整数次幂。

第三行 $m$ 个整数 $B_1, B_2, \cdots, B_m \, (1 \le B_i \le 10^9)$,表示分条的剩余空间。

保证所有数据的 $\sum n, \sum m \le 5\times 10^5$。
 

Output
对于每组数据:

输出一行一个字符串 “Yes” 或者 “No”(均不含引号),分别表示分条能以及不能存下所有的数据对象。
 

Sample Input
2 4 2 2 2 4 8 4 12 4 2 2 2 4 8 3 13
 

Sample Output
Yes No
 

Hint

对于第一组样例,可以把大小为 4 的数据对象放进剩余空间为 4 的分条,其余对象放入剩余空间为 12 的分条。
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-05-05 16:38:49, Gzip enabled