题解思路与方法
问题重述
收容所中有 n 只宠物,第 i 只宠物有领养编号 xi(越小优先级越高),两种毛色 ai 和 bi。有 m 位领养人,依次到来,每位有偏好毛色 cj,只会领养至少一种毛色符合偏好的宠物,并在剩余符合条件的宠物中选领养编号最小的那只。若无心仪宠物,则放弃(输出 −1)。
关键思路
- 按颜色分堆(最小堆)
P3318.第1题-领养宠物
题目内容
某宠物收容所有 n 只宠物,这些宠物每一只都有两种毛色,第 i 只宠物的第一种毛色为 ai,第二种毛色为 bi 。另外根据收容时长,收容所赋予了每个宠物唯一的“领养编号” xi ,可理解为领养优先级,编号越小优先级越高。
近期收容所开放了宠物领养活动。共有 m 个领养人依次来到收容所,每个领养人都有一个偏好的毛色,记为 ci 。领养人只会领养第一种毛色或第二种毛色中至少一种是他们偏好毛色的宠物。如果收容所剩余的宠物中有当前领养人偏好的宠物,则他会选择符合要求的宠物中领养编号最小的那一只宠物。如果没有心仪的宠物(或已经没有剩余的宠物)则会放弃领养。只有当前一位领养人领养结束后(或放弃领养),下一位领养人才会来到收容所进行领养。领养活动结束后,收容所想要了解每个领养人领养宠物的情况,请你帮助他们进行统计。
输入描述