将每条内容看成一个可匹配区间 [li,ri],每个推荐位看成一个热度值 sj。问题就是:每个点 sj 最多匹配一个区间,每个区间最多被匹配一次,求最多匹配数量。
使用贪心算法 + 排序 + 小根堆。
核心思路:
按 li 从小到大排序所有区间,按热度值 sj 从小到大排序所有推荐位。
多多正在为首页内容安排推荐位。一共有 m 个推荐位,第 j 个推荐位的热度值为 sj。
同时有 n 条内容需要参与分发。对于第 i 条内容,多多已经评估出一个可接受的推荐位热度范围 [li,ri]:
因此,第 i 条内容只能放到热度值属于 [li,ri] 的推荐位上。
每个推荐位最多放置一条内容,每条内容也最多放置到一个推荐位。请你帮助多多计算:最多可以成功匹配多少条内容。
第一行输入一个整数 T(1≤T≤3),表示数据组数。 接下来对于每组数据:
对于每组数据,仅输出一行整数,表示最多能够匹配的内容数量。
输入
1
4 4
1 2
2 2
2 3
4 5
2 3 5 6
输出
3
说明
一种最优匹配方式为:
因此最多可以匹配 3 条内容。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册