[Leaf] [P2519] problem a
luogu-p2519-problem-a">Luogu-P2519 problem a
1. 核心逻辑
-
问题本质: 确定最多的说真话人数,使得所有人的排名信息不产生物理冲突。
-
破局转换:
-
排名映射: 若某人说“ 个人比我高, 个人比我矮”,则其可能的排名区间为 。
-
冲突剔除:
-
若 ,该说法物理不可能,直接剔除。
-
相同区间 的说真话人数上限为 。
-
-
模型坍缩: 统计每个合法区间出现的频次,并将其权值设定为 。
-
求解: 问题转化为“在数轴上选取若干互不重叠的加权区间,使权值总和最大”。
-
2. 代码实现
▶
AcCode
1 | |
3. 归档备注
-
复杂度: ,受限于
map的区间频次统计。 -
关键点: 理解“说真话人数”与“排名区间长度”的制约关系。输出结果为 (即最少说谎人数)。
[Leaf] [P2519] problem a
http://miqiu.space/posts/31829f80/