摘要: 题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1551 升级版:Uva 1471 题意: 让你求删除一段连续的子序列之后的LIS。 题解: 预处理:先求一个last[i],以a[i]为开始的合法最长上升子序列的长度。再求一个pre[i 阅读全文
posted @ 2017-04-25 13:57 Dh_q 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一个数组,让你删除一个连续的子序列,使得剩下的序列中有最长上升子序列, 求出这个长度。 题解: 预处理:先求一个last[i],以a[i]为开始的合法最长上升子序列的长度。再求一个pre[i],以a[i]为结尾的合法最长上升子序列长度。 那么这题的答案就是:max(pre[j]) + l 阅读全文
posted @ 2017-04-25 13:38 Dh_q 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一串数字,你可以选择一个位置,将这个位置以上的数字全部翻转过来。问怎么翻转才能把大的放在下面,小的放上面。 题解: 先用另一个数组保存最后的结果(大的在下,小的在上,sort一下就好)。然后从最后一个位开始匹配。如果当前位置的数和最后结果不一样,就要把它翻到这里。 就要在数组里面找到这一 阅读全文
posted @ 2017-04-25 12:05 Dh_q 阅读(126) 评论(0) 推荐(0) 编辑