#P16364. [2026年山东第二轮集训]萝卜内存
[2026年山东第二轮集训]萝卜内存
题目描述
小明制作了一个绿发的机器人。
这个机器人共有 字节的内存,小明需要将其分成两个部分来运行程序,他将两个部分分别称作虚拟内存和现实内存(我也不知道他为什么要这么叫)。一般情况下,这个机器人都能自动进行内存的分配,从而保证程序的运行,然而,发生了罕见的多程序并行情况:有 个程序要在同一时间运行,每个程序要求要么 内的内存均为现实内存,要么 内的内存均为虚拟内存。由于程序并行过多,内存分配程序崩溃了。
当然,如果要求只是这样的话那可太好了,可是小明设计之初为了保证系统的稳定性,强制要求虚拟内存和现实内存均不可超过 字节。这下小明和内存分配程序感同身受了,他现在急需一个帮手,来帮他分配内存,从而救活他的机器人,或者告诉他你的机器人没救了。
输入格式
本题有多组数据。
本题输入输出量较大,请选择较快的输入输出方式。
第一行输入一个正整数 ,表示数据组数。
对于每组数据:
第一行两个正整数 ,表示内存大小的参数和程序数量。
之后的 行,每行四个正整数 表示程序的要求。
输出格式
对于每组数据,若无解输出一行一个字符串 No(宁——宁——萝——卜——);若有解,第一行一个字符串 Yes,第二行一个长为 的 01 串,表示你的内存分配方案,其中第 个位置是 表示其被分配为现实内存,否则为虚拟内存。若有多解,输出任意一解即可。
输入输出样例
样例输入1
2
1 3
1 1 2 2
1 2 3 3
1 1 3 3
1 3
1 1 2 2
2 2 3 3
3 3 1 1
样例输出1
Yes
011
No
其余样例见下发文件,其分别满足下表每一个子任务的限制。
数据范围
对于 的数据,$1\le T\le10^5,1\le n\le3\times10^4,1\le q\le10^5,1\le\sum n\le3\times10^5,1\le\sum q\le10^6,1\le a_i\le b_i\le3n,1\le c_i\le d_i\le3n$。
| 测试点编号 | 特殊性质 | ||||
|---|---|---|---|---|---|