摘要: dp容易想到,但没法进一步优化了。 考虑贪心,每次选出价值最大的物品。但这显然是不对的因为会影响其他物品的选择。 于是考虑加上反悔操作。每次选出一个物品后,将其相邻两物品删除,再将原物品价值变为相邻两物品价值和-原物品价值。这样如果再次选择该物品就可以达到改为选择相邻两物品的效果。并且最优方案中相邻 阅读全文
posted @ 2018-10-16 20:47 Gloid 阅读(393) 评论(0) 推荐(1) 编辑
摘要: 两个位置i和j上的元素不能被放进同一个栈的充要条件显然是存在k使i<j<k且ak<ai<aj。由此在保证合法的情况下贪心地放就是正确的了。 至于如何判断,可以记一下后缀最小值,每找到一对就利用补集并查集合并。放的时候要求与该栈所有元素不排斥且与另一个栈的元素不存在强制同栈的关系。 怎么感觉远古时代n 阅读全文
posted @ 2018-10-16 02:55 Gloid 阅读(195) 评论(0) 推荐(0) 编辑