【BZOJ2298】【luoguP2519】problem a

一次考试中,每个人报告了高于和低于自己的人数。题目要求找出最少说谎的人数。通过将报告转化为排名,发现分数相等的情况,并转换为线段覆盖问题,通过排序和动态规划求解最大线段覆盖。实际解题过程中需要注意n的使用。
摘要由CSDN通过智能技术生成

description

一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数)


analysis

  • 这题转化模型很妙,容易知道最少没有说真话的数量 = n − =n- =n说真话最多的数量

  • 对于 a i a_i ai个比 i i i大、 b i b_i bi个比 i i i小,可以看成 i i i分数排名第 a i + 1 a_i+1 ai+1

  • 又由于有重分,那么转化成 [ a i + 1 , n − b i ] [a_i+1,n-b_i] [a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值