摘要:
一个经典的通过增长减小大小来求使得序列单调性的最小代价。 对于这道题,有一个前置题是不要求要严格单调,而是不严格单调 这样的话,我们可以得到一个性质,最后所有的值都是在原序列当中的,这其实用贪心的想法想一想就好,因为一旦通过加减与左边或右边相等,就没必要再加减了 但是本题要求严格,这就很难说了,因此 阅读全文
摘要:
题目吓死人系列,这一串浮点位置看哭我,后来仔细读题,发现题目问的是,最少经过多少次移动能将序列排成非严格单调递增 为什么是这样的呢,因为他想要分m个区域,并且要求每个i种类都位于i区域,那么只能把所有的排成非严格递增才行 那这道题就简单了,其实就是求LIS,之后用总数减一下就行,这里我使用的是nlo 阅读全文
摘要:
这题的主要信息就是,这是一个排列,而不是数列 对于排列也就是说每行都是1-n这些数,只是位置不同,我们观察到n只有1000 并且考虑到对于一个最长公共子序列,也就是说,如果两个数能成为公共子序列,那么其中一个数在每一行都是在另一个数后面 所以我们设计dp状态f[i]表示以i结尾的最长公共子序列,在转 阅读全文
摘要:
一般对于这种dp,都会设计两维,表示a中前i个和b中前j个能表示的最长长度是多少 那么考虑对集合进行划分 我们可以想到,当遍历到i,j时,有四种可能,一种是都不选,一种是都选,还有两种是选一个 对于都不选,那么就等于f[i-1][j-1],对于都选,是f[i-1][j-1]+1,前提是相等 剩下两种 阅读全文