UVA 10131 - Is Bigger Smarter

23 篇文章 0 订阅
17 篇文章 0 订阅

题目大意: 给出一些大象,包含它的重量、智商。要你找出最长的序列,满足重量越大、智商越低。(严格增减)

题目类型:dp / LIS

题目分析:

把大象按重量升序排序,然后在此序列中对智商属性找最长单减子序列。要注意的是,题目要求的都是严格增减,所以要在判断条件里考虑相等的情况以排除(主要是重量)。

另外还要注意,排序后,序就不是原来的序了,而题目要求输出原序。所以在排序时维护一个r[]数组。

对于 最长单减子序列 的dp,状态转移方程(2种):

//d[i] = max{d[j]+1 | s[i]>s[j]; j = (i, n);} //d[i] 表示以 i 开头的 最长 递减子序列
//d[i] = max{d[j]+1 | s[i]<s[j]; j = [0, i);} //d[i] 表示以 i 结尾的 最长 递减子序列

代码:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值